PDA

View Full Version : php in AJAX



sas523
دوشنبه 29 تیر 1388, 23:30 عصر
سلام دوستان من یه فایل از جنس php نوشتم که تولید ِ یه فایل ِ xml میکرد ؛
فایل xml ام به این صورته که اسمشم گذاشتم file.php ؛



<?php
header("content-type : text/xml ; charset=utf-8");
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";
echo "<book>
<c>
<n>Hello User</n>
</c>
<c>
<n>wellcom</n>
</c>
</book>";
?>

حالا میخوام ازین فایل به صورت ajax استفاده کنم تا نمایش داده بشه

کدhtml ام به این صورته ؛


[HTML]
<script language="javascript">
var xmlHttp = null;
var xmlObj;
function Create(){

if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
return xmlHttp ;
}

function update (){
if (xmlHttp.readyState == 4 ){
xmlObj = xmlHttp.responseXML ;
alert(xmlObj.xml) ;

}
}

function Ok(){
Create();
xmlHttp.open('GET' , 'FILE.php', true );
xmlHttp.onreadystatechange = update ;
xmlHttp.send(null);
}
OK();

</script>[/HTML

]

اما ازم ارور میگیره ممنون میشم کمک کنید.:لبخندساده:

dannydolph
سه شنبه 30 تیر 1388, 09:50 صبح
مشکل کدت اینجاست:OK().باید اسم تابع رو دقیقاً ذکر کنی چون جاوا اسکریپت به حروف کوچیک و بزرک حساسه.اینجوری : Ok()
راستی یه لطف کن و این کدهات که گذاشتی تو تگ html درست کن..
از روی توصیه :
کدت رو یه کم ویرایش کن و status رو هم چک کن و ورژن های مختلف ActiveXObject رو بررسی کن.چیزهای کاملتری خیلی راحت میتونی پیدا کنی.

moallemi
سه شنبه 30 تیر 1388, 09:52 صبح
چرا از jquery (jquery.com/) یا prototype (www.prototypejs.org/) استفاده نمی کنی؟! خیلی کارت راحت تر میشه!

soheil.moradi
سه شنبه 30 تیر 1388, 13:51 عصر
اگر زیادی از ajax میخوای تو برنامه ات استفاده کنی، حتماً از prototype استفاده کن.
البته میتونی از ajaxtoolbox هم استفاده کنی (در صورتی که زیاد ajax نداری و کارهای خیلی بزرگی نمیخوای با ajax انجام بدی، این ajaxtoolbox چیز بدی نیست)
لینک ajaxtoolbox (http://www.ajaxtoolbox.com/)

امیـرحسین
سه شنبه 30 تیر 1388, 15:34 عصر
دوستان لطف کنید کاربران (احتمالا) تازه کار رو به فریم ورک ها پاس ندید چون ممکنه برای همیشه قید جاوااسکریپت و آژاکس رو بزنند. مخصوصا prototype.

اگر میخواید از فریم ورک استفاده کنید (و تا حالا باهاشون کار نکردید) فقط برید سراغ همون jQuery که یکی از دوستان گفتند. توابع آژاکس داره، یادگیریش خیلی ساده است و به همراهش کلی افکت و قابلیت هم میتونید باهاش داشته باشید.

اگر جاوااسکریپت تا حدی بلدید، از MooTools استفاده کنید.

sas523
چهارشنبه 31 تیر 1388, 11:32 صبح
ببینید دوستان من این چیزاهایی که گفتید رو بلد نیستم "jquery (http://jquery.com/) یا prototype (http://www.prototypejs.org/) وajaxtoolbox (http://www.ajaxtoolbox.com/)" :ناراحت:و اصلا هم وقتم اجازه نمیده برم سراغشون ! , و باعث ِ پراکندگی ذهنی ام میشه؛ در حالیکه در اسرع وقت از لطفتون استفاده میکنم و یادشون میگیرم ؛ مرسی از راهنماییتون
من اینجا هم این تایپیک رو نوشتم چون گفتم فروم php کارهای عزیز هست احتمالا در Ajax کدنویسی این مدلی براشون آشناتر است ؛ ممنون میشم اگر دوستان به این مدل از برنامه نویسی آشنایی دارند کمکم کنند؛

این کد رو اگه به جای فایل 'FILE.PHP' تو متد open نوع ِ xml اش رو قرار بدیم فرضا ' FILE.XMl' کاملا اجرا میشه و خروجی رو نشون میده .

ببینید مشکل اصلی فقط در responseXml است ! من اگر از Response Text بخوام استفاده کنم باز هم جواب نداد ؛(یعنی برم تگ div ایجاد کنم و ...)

در ضمن جناب ِdannydolph (http://barnamenevis.org/forum/member.php?u=108996) خیلی ممنون بله این جا اشتباه تایپی داشتم ؛

اون مشکل رو رفع کردم اما بازم جواب نداد ؛
میدونی چی میشه یه کادر الرت میاد که فقط یه کادر ِ خالیه ؛ بنظره من :"یعنی میره که فایل رو بیاره و بخونه اما به محتوی ِ فایلِ php دسترسی داشته باشه ؛ حالا چراش رو نمیدونم "

status رو هم بله چک کردم این نتیجه رو میده ؛ 200
و ReadyState رو هم 4 نشون میده .
میشه بازم وقت بزارید چکش کنید ؟

با تشکر قبلی از کلیه دوستان .

امیـرحسین
پنج شنبه 01 مرداد 1388, 21:14 عصر
من کدها رو تست کردم. مشکلی نداشت ولی xmlObj.xml مقدار نداره. بجای اون alert رو به این شکل در بیارید، میبینید که کار می کنه:

alert(xmlObj.getElementsByTagName('n').length);