
15-08-2007, 16:35
|
|
|
|
חבר מתאריך: 12.08.05
הודעות: 883
|
|
|
הגדרת משתנים בphp עם ajax...
צהריים טובים.
אני יודע שאולי אתם תצחקו מהשאלה שלי, אבל עד עכשיו עבדתי בצורה ממש מפגרת, ואני חושב שהגיע הזמן להתקדם קצת מבחינת הAJAX שאני יודע...(וזה ממש לא הרבה...)
שנתחיל?
בשלבים הממש ראשונים בלימוד הajax שלי, השתמשתי בקובץ חיצוני כדי להציג את הפלט של הajax.
בדיוק כמו במדריך הזה http://www.w3schools.com/ajax/ajax_source.asp משם אגב למדתי ajax.
בכולופן עם השימוש שלי בajax החלטתי שאני רוצה לנסות לכתוב את הפלט שהajax יציג, באותו עמוד שבו אני קורא לפונקציית ajax.
ניסיתי כל מידי דברים, היו דברים שוואלה עמדתי מול המסך ולא היה לי שום כיוון מחשבה למה לעזעזל הוא עושה את זה. למשל הוא הכפיל לי את העמוד, רשם ארורים מוזרים ודברים כאלה... עם הניסיון התוצאות האלה נראות לי קצת יותר הגיוניות אבל עדיין, אני ממש משתדל שלא לסמוך על הajax 
בכולופן עבדתי קשה עד שעיצבתי לי את הדף הבא שהוא בעצם הפלטפורמה לכל קבצי הphp משולבים ajax שאני עובד עליהם.
זה הקובץ php:
קוד PHP:
<? if (!isset($_GET['id_ajax'])) { ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="ajax.js"></script> </head> <body> <input type="text" name="ajax" id="ajax1" value="it's work!" onkeyup="ajax(this.id, this.value, 'ajax.php')"> <div id='outPut_ajax'><div> </body> </html> <? } else { $id_ajax = $_GET['id_ajax']; $value_ajax = $_GET['value_ajax']; echo "id: ".$id_ajax."<br>"; echo "value: ".$value_ajax; } ?>
וזה הקובץ ajax.js:
קוד:
function ajax(a_id, a_val, us)
{
if (a_val.length==0)
{
document.getElementById("outPut_ajax").innerHTML="";
return;
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url=us
url += "?id_ajax="+a_id
url += "&value_ajax="+document.getElementById(a_id).value;
url += "&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("outPut_ajax").innerHTML=xmlHttp.responseText
}
}function GetXmlHttpObject()
{
var xmlHttp=null;
try
{a
// 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;
}
ואם תנסו את הקוד הזה, אתם תראו שהוא עובד סבבה.
הבעיה שלי מתחילה כשאני רוצה נניח לעשות שברגע שכותבים משהו, הערך שהתקבל נכנס לתוך איזה משתנה בphp שאותו אני יכול להציג איפה שהוא בדף שלי.
אבל, בגלל שהעמוד עצמו(זה שמפעיל את הפונקציה של ajax) לא מתרענן, הערך של המשתנה לא משתנה בהתאם.
עברתי על כל מיני קודים של ajax באינטרנט ולא מצאתי משהו רציני שיכול לעזור לי.
אם אתם יכולים לתת לי הסבר איך אני יכול להשתמש בajax ככה שלא יתן לי רק פלט, אלא גם יוכל לשנות לי את הנתונים בדף המקורי, אני ממש ממש אודה לכם!
אני יודע שיכול להיות שהבקשה שלי אומרת כמה דברים על הידע שלי בajax, ואני יודע שיכול להיות שזו השאלה הכי מפגרת בajax, אבל מצד שני, אם לא נשאל איך נדע? 
אני ממש אשמח אם מישהו יסדר לי קצת בראש את כל העיניין הזה של הajax.
מצטער על הטירחה ותודה מראש.
|