PDA

View Full Version : چگونه در مد get یا post آرگومانی را با ajax به سرور بفرستیم؟



armintirand
جمعه 08 اردیبهشت 1391, 19:13 عصر
سلام
من یک صفحه دارم که چند تا منو داره این منو ها هر کدوم خودشون تعدادی زیر منو دارن روی هر کدوم از این منوها که کلیک میکنم باید با متد get یا post به اسکریپت php سمت سرورم آرگومان مورد نظرو بفرسته و اونجا با توجه به آرگومان فرستاده شده از دیتابیس داده های لازم رو به کاربر نشون بده
مشکل من توی تابع XMLHttpRequestObject.open است که نمیدونم توی تابع چطوری آرگومانمو نشون بدم
مثلا یک متغیر دارم به نام id که از کاربر گرفتم و میخوام به این صورت
test.php?id=$id
که کد php اون میشه رو توی این تابع بکارببرم و از طرفی سمت سرور آیا با کد

$_GET[id]
میشه به اون دسترسی داشت؟

mosi2007
جمعه 08 اردیبهشت 1391, 20:41 عصر
سلام
من یک صفحه دارم که چند تا منو داره این منو ها هر کدوم خودشون تعدادی زیر منو دارن روی هر کدوم از این منوها که کلیک میکنم باید با متد get یا post به اسکریپت php سمت سرورم آرگومان مورد نظرو بفرسته و اونجا با توجه به آرگومان فرستاده شده از دیتابیس داده های لازم رو به کاربر نشون بده
مشکل من توی تابع XMLHttpRequestObject.open است که نمیدونم توی تابع چطوری آرگومانمو نشون بدم
مثلا یک متغیر دارم به نام id که از کاربر گرفتم و میخوام به این صورت
test.php?id=$id
که کد php اون میشه رو توی این تابع بکارببرم و از طرفی سمت سرور آیا با کد

$_GET[id]
میشه به اون دسترسی داشت؟
دوست عزیز من یه نمونه ساده رو قرار دادم از او ن چیزی که احتیاج داشتید البته چیزی که میخاستید نیست ولی تو همون مایه هاست با متد post میفرسته که اگه خواستی میتونی همه post ها رو تو صفحه به get تبدیل کنی
این از صفحه اول


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function load(){

if(window.XMLHttpRequest){

xmlhttp=new XMLHttpRequest();
}else{

xmlhttp=new ActiveXObject('Microsoft.XMLHTTP')

}
xmlhttp.onreadystatechange=function (){

if(xmlhttp.readyState == 4 && xmlhttp.status == 200){

document.getElementById('adiv').innerHTML=xmlhttp. responseText;
}

}
parameter='id='+document.getElementById('id').valu e;
xmlhttp.open('POST', 'test.php', true);
xmlhttp.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
xmlhttp.send(parameter);


}


</script>
</head>

<body>
<input type="text" id="id" />
<input type="button" onclick="load();" />
<div id="adiv"></div>
</body>
</html>
بعد تو صفحه test.php هم این طوری تحویلش میگیری و به دیتا بیس اگه خواستی ارتباط میدی



<?php
mysql_connect('localhost','root','');
mysql_select_db('ajax');
if(isset($_POST['id'])){
$id=$_POST['id'];

}
if(!empty($text)){



$select=mysql_query("INSERT INTO names VALUES ('','$id')");
echo "insert";

}



else echo"type somthing!";

?>

djsaeedkhan
جمعه 08 اردیبهشت 1391, 20:55 عصر
سلام
می تونی از این نمونه هم استفاده کنی
http://barnamenevis.org/showthread.php?338809-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B5%D9%81%D8%AD%D9%87-%D8%A8%D9%86%D8%AF%DB%8C-%D9%85%D8%B7%D8%A7%D9%84%D8%A8&p=1494595&posted=1#post1494595

ravand
جمعه 08 اردیبهشت 1391, 21:06 عصر
با ايجكس در جي كوئري بفرست راحت تره. هم يادگيريش آسون تره و هم با مرورگر هاي مختلف سازگار تره

armintirand
جمعه 08 اردیبهشت 1391, 21:34 عصر
ممنون از پاسخهاتون روش دوستمون mosi2007 رو تست کردم جواب داد ولی برای متد GET کار نکرد اگر ممکنه برای اون هم مثالی بزنید.
ممنون

mosi2007
جمعه 08 اردیبهشت 1391, 21:53 عصر
عرض کردم که همه post ها رو تو دو تا صفحه به get تبدیل کن
ببین میشه چون خودم با get امتحان نکردم اگه شد به ما هم خبر بده

armintirand
جمعه 08 اردیبهشت 1391, 23:35 عصر
mosi2007 جان اینکاروقبل از فرمایش شما کردم نشد فکر کنم چیز دیگه‌ای هم باید تغییر کنه.

mosi2007
شنبه 09 اردیبهشت 1391, 00:22 صبح
mosi2007 جان اینکاروقبل از فرمایش شما کردم نشد فکر کنم چیز دیگه‌ای هم باید تغییر کنه.

بفرما


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function load(){

if(window.XMLHttpRequest){

xmlhttp=new XMLHttpRequest();
}else{

xmlhttp=new ActiveXObject('Microsoft.XMLHTTP')

}
xmlhttp.onreadystatechange=function (){

if(xmlhttp.readyState == 4 && xmlhttp.status == 200){

document.getElementById('adiv').innerHTML=xmlhttp. responseText;
}

}

xmlhttp.open('GET', 'test.php?id='+document.getElementById('id').value , true);

xmlhttp.send();


}


</script>
</head>

<body>
<input type="text" id="id" />
<input type="button" onclick="load();" />
<div id="adiv"></div>
</body>
</html>

اینم صفحه test.php



<?php
mysql_connect('localhost','root','');
mysql_select_db('ajax');
if(isset($_GET['id'])){
echo $id=$_GET['id'];

}
?>

AbiriAmir
سه شنبه 12 اردیبهشت 1391, 17:05 عصر
عزیز با jQuery با 1خط کد همه این کارها رو خیلی خیلی راحت تر میشه انجام داد
تازه مشکل با بروزر ها هم نخواهی داشت...
منم 1زمانی درگیر همین کدها بودم! آخر که همه چی حل شد تازه مشکلم با IE شروع شد که فقط jQuery نجاتم داد :)

ahmadflasher
سه شنبه 12 اردیبهشت 1391, 23:16 عصر
عزیز با jQuery با 1خط کد همه این کارها رو خیلی خیلی راحت تر میشه انجام داد
تازه مشکل با بروزر ها هم نخواهی داشت...


http://api.jquery.com/jQuery.ajax/