![]() |
# 1 |
חבר מתקדם
|
שאלה בajax | האם זה אפשרי
לעשות בAJAX וPHP,
לבדוק אם checkbox במצב checked הופך להיות במצב unchecked.. כאילו מבטלים סימון, ואם ביטלו שזה יריץ איזה קובץ php.. זה אפשרי? ואם אפשר הסבר איך הevents עובדים. |
![]() |
![]() |
# 2 |
חבר וותיק
|
אתה עושה onclick ואז בודק אם הוא מסומן או לא אם לא אתה שולח בקשת XMLHTTP לקובץ PHP ומעבד את מה שמתקבל דוגמה לקוד כזה:
HTML קוד:
<script language="javascript"> var xmlHttp = createXmlHttpRequestObject(); function createXmlHttpRequestObject() { // will store the reference to the XMLHttpRequest object var xmlHttp; // this should work for all browsers except IE6 and older try { // try to create XMLHttpRequest object xmlHttp = new XMLHttpRequest(); } catch(e) { // assume IE6 or older var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"); // try every id until one works for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) { try { // try to create XMLHttpRequest object xmlHttp = new ActiveXObject(XmlHttpVersions[i]); } catch (e) {} // ignore potential error } } // return the created object or display an error message if (!xmlHttp) alert("Error creating the XMLHttpRequest object."); else return xmlHttp; } function check(box){ if(!box.checked){ alert('checked'); if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0){ xmlHttp.open("GET","ajax.php?check=true",true); xmlHttp.onreadystatechange = onready; xmlHttp.send(null); }else setTimeout("check(box)",1000); } } function onready(){ if(xmlHttp.readyState==4){ if(xmlHttp.status==200){ var div = document.getElementById('div'); div.innerHTML = xmlHttp.responseText; }else alert('error in AJAX'); } } </script> <input type="checkbox" onclick="check(this)" /> אתה מוזמן להשתמש בו רק לעשות קצת שינויים ![]() |
![]() |
![]() |
# 3 |
חבר מתקדם
|
קודם כל תודה רבה
setTimeout("check(box)",1000); תשמע יהיה לי בערך 100checkboxs בעמוד, זה הכרחי הtimeout? |
![]() |
![]() |
# 4 | |
חבר וותיק
|
ציטוט:
אתה יכול להעיף את זה אבל יש מצב שזה יגרום לבעיות |
|
![]() |
![]() |
# 5 |
חבר חדש
|
לא צריך שום timeout. תעשה:
קוד:
xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { // עיבוד של הנתונים } } |
![]() |
![]() |
# 6 | |
אין כמו ב127.0.0.1
|
ציטוט:
onload = check; לא יותר פשוט? ד"א תנסה לעבוד מול prototype או mootools עם AJAX, זה פשוט מסובך מדי ככה. |
|
![]() |
![]() |
# 7 |
חבר מתקדם
|
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|