PDA

View Full Version : AJAX & PHP



janbozorgi
یک شنبه 28 شهریور 1389, 12:22 عصر
با سلام
چون تالار خاصی را مربوط به ای جکس نیافتم این بود که سوال خودم را اینجا مطرح می کنم امیدوارم دوستان کمک کنند.(بنده تازه ای جکس رو شروع کردم)
دوستان احتمال زیاد کدی رو که بنده در زیر کمی تغییرش دادم رو در جاهای دیگه دیدن. حالا ممنون میشم بفرمایید ایراد کد زیر (که ناشی از تغییرات بنده است و بنظر خودم کد ایرادی نداره) چیه؟
ممنون



<html> <head> <script language="Javascript">

function GetXmlHttpObject(){
var xmlHttp=null;
try { // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e) { //Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function getquerystring() {
var form = document.forms['form1'];
var name = form.name.value;
qstr = 'w=' + escape(name); // NOTE: no '?' before querystring
return qstr;
}
function updatepage(str){
document.getElementById("result").innerHTML = str;
}
function xmlhttpPost(strURL) {
var xmlHttp= GetXmlHttpObject();
if(xmlHttp== null) {
alert("Browser does not supportHTTP request");
return;
}
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("POST", strURL, true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.send(getquerystring());
}
function stateChanged(){
if(xmlHttp.readystate==4){
updatepage(xmlHttp.responseText);
}
}
//________________________________
</script>
</head>
<form name="form1" >
<p>Name: <input name="name" type="text" >
<input value="Go" type="button" onclick='JavaScript:xmlhttpPost("b.php")'></p>
</form>
<div id="result"></div>
</body>
</html>


کد پی اچ پی مربوطه:



<?php
$name=$_REQUEST['w'];
$ip=$HTTP_SERVER_VARS["REMOTE_ADDR"];
print"Hello <b>$name</b> ,Your Ip Address Is : <b>$ip</b> ,You Are Trying Simple Ajax Example.";
?>

Hell Lord
یک شنبه 28 شهریور 1389, 14:47 عصر
من که متوجه نشدم این همه دستور برای چی بود :


<html> <head> <script language="Javascript">
function load(page,method,httpPost)
{
if (window.XMLHttpRequest)
xmlhttp=new XMLHttpRequest();
else
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
document.getElementById("result").innerHTML=xmlhttp.responseText;
}
xmlhttp.open(method,page,true);
if(method=='POST')
xmlhttp.send(httpPost);
else
xmlhttp.send();

}
</script>
</head>
<form name="form1" >
<p>Name: <input name="name" type="text" >
<input value="Go" type="button" onclick='javascript:load("b.php","GET","")'></p>
</form>
<div id="result"></div>
</body>
</html>

baradar
دوشنبه 29 شهریور 1389, 15:22 عصر
شما می تونید به جای این همه کد نویسی از jquery استفاده کنید هم راحت تره و هم استاندارد تر
مثلا کد ی رو که شما در پست یک نوشتید با جی کوئری همین قدره


txt=$("#name").val();

$.ajax({
type: "POST",
url: "b.php",
data: "text=" + txt,
success: function(msg){

$("#result").html(msg);

}
});

فقط به جای نام برای تکست باکس باید آی دی تعریف کنید

janbozorgi
شنبه 03 مهر 1389, 09:01 صبح
من که متوجه نشدم این همه دستور برای چی بود :


<html> <head> <script language="Javascript">
function load(page,method,httpPost)
{
if (window.XMLHttpRequest)
xmlhttp=new XMLHttpRequest();
else
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
document.getElementById("result").innerHTML=xmlhttp.responseText;
}
xmlhttp.open(method,page,true);
if(method=='POST')
xmlhttp.send(httpPost);
else
xmlhttp.send();

}
</script>
</head>
<form name="form1" >
<p>Name: <input name="name" type="text" >
<input value="Go" type="button" onclick='javascript:load("b.php","GET","")'></p>
</form>
<div id="result"></div>
</body>
</html>

بله دوست عزیز حق باشماست اما:
کد شما ناقص است چون اطلاعات را ارسال نمیکند(اطلاعاتی که در متغیر w میخواهیم بفرستیم).
بعد اینکه بنده میخواستم ایراد همین کدها را بفهمم که چرا و کجا ایراد دارد.
متشکرم

funpatogh
شنبه 03 مهر 1389, 21:36 عصر
اول اینه توی onclick


onclick='javascript:xmlhttpPost("b.php")
یک فانکشن رو داری صدا میزنی که آرگومانش b.php هست و توی این فانکشن اصلا استفاده ای نشده پس این آرگومان بی خود هست
ایراد دوم توی این فانکشن که صدا زدی فقط داری


var xmlHttp= GetXmlHttpObject();
تکلیف نوع مرورگر رو معلوم می کنی که ie هست یا از نوع لینوکسی و ...
کار دیگه ای انجام نمیشه همین