PDA

View Full Version : ajax و دیتا بیس



majoran
شنبه 20 بهمن 1386, 12:47 عصر
با سلام به همه دوستان
آقا من یه مشکل اساسی دارم تو این پی اچ پی و اونم اینه که من یه سری فیلد دارم مثل نام استان ها اگه کاربر نام استان خودشو انتخاب کنه تو کامبو باکس پایینش نام شهرستنانها از دیتا بیس خونده بشه و داخل این کامبو قرار بگیره مثل همین چیزی که تو سامانه ایفروش هست

مهم برام اینه که هردو تا فیلد های مورد نظر رو از دیتا بیس بخونه متشکرم .

Bahram0110
شنبه 20 بهمن 1386, 14:23 عصر
با Ajax یکم پیچیده می شه !!! :لبخند: کارایی هم به نظر من میاد پائین!(به دلیل سرعت)

اگه نخوای از دیتابیس استفاده کنی جاوا اسکریپت گزینهء مناسبیه

amirhosein
شنبه 20 بهمن 1386, 14:29 عصر
یه مثال توی همین سایت برای کار با دیتابیس به صورت ای جکسی دیدم.جستجو کن.

majoran
شنبه 20 بهمن 1386, 21:41 عصر
حالا بدون آجکس همشد شد ولی این کارو باید با پایگاه داده انجام بم هدف من نمایش یک چیز ثابت مثل نام شهر نیست

Mah
یک شنبه 21 بهمن 1386, 07:39 صبح
سلام .

شما ابتدا یک فایل ajax.js با این کد ایجاد می کنید :


function getHttp()
{
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")
}
catch(e)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
}
}
return xmlHttp;
}
سپس یک فایل php ایجاد می کنید (مثلاً : GetOstan.php) برای گرفتن نام استان و پیدا کردن نام شهرهای آن استان از بانک .



/*
اتصالات بانک و .....
*/

$conn=mysql_connect('localhost','uName','uPass');

$Ostan=$_Get['ostan'];
$res=mysql_query("Select * From myTb where ostan=$ostan");

$maxrecord=mysql_num_rows($res);

for($i=0;$i<$maxrecord;$i++)
echo mysql_result($res,$i,'ostan')."-";
mysql_close();


فایل htm شما که کاربر می بیند نیز این گونه است .


......
<head>
<script language="javascript" type="text/javascript" src="ajax.js" ></script>
<script language="javascript">

url="GetOstan.php?ostan="
var http1=getHttp();

function getostan(txtOstan)
{
http1.open("GET",url+txtOstan,true);
http1.onreadystatechange=Answer;
http1.send(null);

}

function Answer()
{
if(http1.readystate==4)
{
var r = " ";
r=http1.responseText
/*
شهرها با یک علامت mines "-" از هم جدا می گردند .
کافیست زحمت نوشتن کدی برای جدا کردن نام شهرها بکشید .

*/

}
}
</script>

..........................
<body>
......
<input type='text' name='txtost' onkeyup='getostan(this.value)' />
<input type='select' name='mycity' >
<option>
</option>
</select>



امیدوارم کد مفیدی برایتان نوشته باشم .
موفق باشید .

majoran
یک شنبه 21 بهمن 1386, 08:44 صبح
mah جان دوست عزیز از لطف شما متشکرم ولی یک مشکل پیدا شد
و اونم تو فایل php و در رابطه با بانک من هست اگه لطف کنی و این برنامه رو به صورت نوشته شده و فایل هاشو برام بفرستی منو شرمنده خودت کردی متشکرم دوست عزیز

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname= "localhost";
$database= "mka";
$username= "mka";
$password= "mka";
$conn=mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
$Ostan=$_Get['ostan'];
$res=mysql_query("Select * From ostan where ostan=$ostan");
$maxrecord=mysql_num_rows($res);
for($i=0;$i<$maxrecord;$i++)
echo mysql_result($res,$i,'ostan')."-";
mysql_close();
?>

Mah
یک شنبه 21 بهمن 1386, 09:09 صبح
سلام دوست من :
من در کد بالا انتخاب دیتابیس را فراموش کردم .
شما هم همین طور
کافیست کد خود را به صورت زیر تغییر دهید .


mah جان دوست عزیز از لطف شما متشکرم ولی یک مشکل پیدا شد
و اونم تو فایل php و در رابطه با بانک من هست اگه لطف کنی و این برنامه رو به صورت نوشته شده و فایل هاشو برام بفرستی منو شرمنده خودت کردی متشکرم دوست عزیز

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname= "localhost";
$database= "mka";
$username= "mka";
$password= "mka";
$conn=mysql_connect($hostname, $username, $password) or
trigger_error(mysql_error(),E_USER_ERROR);
//---------------------------- تغییرات --------------------------------
mysql_selectdb($database,$conn);
//----------------------------------------------------------------
$Ostan=$_Get['ostan'];
$res=mysql_query("Select * From ostan where ostan=$ostan");
$maxrecord=mysql_num_rows($res);
for($i=0;$i<$maxrecord;$i++)
echo mysql_result($res,$i,'ostan')."-";
mysql_close();
?>

majoran
یک شنبه 21 بهمن 1386, 15:38 عصر
من دیگه دارم خیلی مزاحمت ی شم دوست عزیز ولی باز از خط 16 مشکل میگیره
$maxrecord=mysql_num_rows($res);
اگه بتونی فایل کامل رو برام ارسال کنی خیلی حال دادی عزیزم

majoran
دوشنبه 22 بهمن 1386, 14:47 عصر
mah جون دستم به دامنت به دادم برس

Mah
سه شنبه 23 بهمن 1386, 09:38 صبح
سلام .
این هم یک مثال .
Zipped by WindowsXP .
Test on :
Apache 2.2.3
MySQL 5.0.2
PHP 5.5.2
امیدوارم مشکلت حل بشه .

majoran
سه شنبه 23 بهمن 1386, 10:00 صبح
سلام باز هم نشد هر کاری می کنم تند تند هی پیغام میده
GetOstan.php?ostan=سمنان
کار ما هم حسابی گیر کرده ها

Mah
سه شنبه 23 بهمن 1386, 10:22 صبح
سلام .
متاسفانه یادم رفت کدهای خطایابی را در توضیحات بگذارم .
حالا این کد را امتحان کن .

majoran
سه شنبه 23 بهمن 1386, 12:02 عصر
دستت درد نکنه فعلا نتونستم تستش کنم ولی در اولین فرصت حتما خبرشو برات می فرستم ماه عزیز

majoran
سه شنبه 23 بهمن 1386, 12:48 عصر
کار من گره خورده اساسی اجرا نمیشه مهندس که نمی شه پدرم دراومد