![]() |
# 1 |
חבר מתקדם
|
עזרה בAJAX
שלום,
לא מזמן התחלתי ללמוד להשתמש בAJAX. יצרתי לי עמוד (בדיקה), עם טופס התחברות. יש שם משתמש וסיסמא. ברגע שמזינים פרטים יש הודעה בAJAX שרושמת האם הפרטים נכונים או לא. שזה בעצם דבר דיי פשוט. מה שאני רוצה לעשות זה לעשות שהשדה שבו מזינים את שם המשתמש ישתנה (צבע שונה, וכו'). ויש לי עוד שאלה, אני עובד בשיטת GET, משמע יש קובץ login.php וקובץ ajax.php שאיתו בעצם אני בודק את הפרטים במסד ומחזיר פלט (נכון / לא נכון), השאלה שלי אם חייב את הקובץ ajax.php או שניתן לעשות את זה בצורה דומה עם קובץ אחד בלבד (login.php). אם צריכים פרטים נוספים תגידו ואני אוסיף. תודה מראש ![]()
__________________
![]() HIGHDESIGN.co.il עיצוב ובניית אתרים. |
![]() |
![]() |
# 2 | |
משתמש - היכל התהילה
|
אפשר בקובץ אחד. תשתמש ב eval בשביל הצבעים.
ציטוט:
אז תחזיר פלט כזה שישנה את הצבע (=dhtml), תשתמש בנתיים ב getDocumentById. לעוד מידע, תתחיל לחפש google.co.il ![]() Last edited by mlnn; 12-08-08 at 22:17.. |
|
![]() |
![]() |
# 3 |
חבר מתקדם
|
__________________
![]() HIGHDESIGN.co.il עיצוב ובניית אתרים. |
![]() |
![]() |
# 4 |
חבר בקהילה
|
אתה פשוט יכול לעשות דבר כזה
נגיד אתה מקבל ok אם הפרטים נכונים או bad אם הפרטים שגויים. קוד:
<script type="text/javascript"> // some ajax code... var response = ajaxobj.responseText; if ( response == 'ok' ) { text = "<span style='color:green'>הפרטים שהזנת נכונים</span>"; } else { text = "<span style='color:red'>הפרטים שהזנת שגויים</span>"; } document.getElementById('answer').innerHTML = text; </script> <form...> <input...> </form> <div id="answer"></div> PHP קוד:
|
![]() |
![]() |
# 5 |
חבר וותיק
|
this is an sample ajax request:
קוד:
<script type="text/javascript" src="jquery-1.2.6.min.js"></script> <script> $("div#validate_information").click( function() { username = $("div#username"); password = $("div#password"); $.get("a.php", { user: username.text(), pass: password.text() }, function(returnedValue){ class = "ohboy"; if (returnedValue == "okay") class = "okay"; username.addClass(class); password.addClass(class); }); }); </script> btw i would use JSON to serialize the variables i want to send in this stream
__________________
![]() |
![]() |
![]() |
# 6 |
חבר מתקדם
|
טוב אפשר להגיד שקצת הסתבכתי עם כל הפתרונות.
אני מחפש משהו פשוט שגם יהיה לי קל להבין אותו (רק לפני מספר ימים התחלתי ללמוד AJAX). הנה הJS שבטופס התחברות עצמו: HTML קוד:
<script type="text/javascript"> function ajaxFunction() { var ajaxRequest; try { // Firefox, Opera 8.0+, Safari ajaxRequest=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { ajaxRequest=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { ajaxRequest=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ var ajaxDisplay = document.getElementById('ajaxDiv'); ajaxDisplay.innerHTML = ajaxRequest.responseText; } } var name = document.getElementById('username').value; var pass = document.getElementById('password').value; var queryString = "?username=" + name + "&password=" + pass; ajaxRequest.open("GET", "ajax.php" + queryString, true); ajaxRequest.send(null); } </script> HTML קוד:
<form method="post" action=""> <table cellpadding="0" cellspacing="0" border="0" align="center"> <tr> <td><strong>שם משתמש:</strong></td> <td style="text-align: center;"><input size="16" onblur='ajaxFunction()' name="username" type="text" id="username" value="" style="font-family: Arial;" /> </td> </tr> <tr> <td><strong>סיסמא:</strong></td> <td style="text-align: center;"><input size="16" onblur='ajaxFunction()' name="password" type="password" id="password" value='' style="font-family: Arial;" /></td> </tr> <tr> <td colspan="2"> <br /><br /> <input type="submit" name="submit" value="התחבר" /> </td> </tr> </table> </form> PHP קוד:
כרגע ההצעה שנראית לי הכי פשוטה זה של DvirCohen, אבל לא הבנתי איך להחזיר תשובה לקובץ login. תודה על העזרה ![]()
__________________
![]() HIGHDESIGN.co.il עיצוב ובניית אתרים. |
![]() |
![]() |
# 7 |
הוסטסניון
|
תבדוק את התגובה שקיבלת מהקובץ ajax, ואז תבצע תנאי שאם למשל קיבלת true אז תשנה את צבע המסגרת של השדה.
לשנות צבע מסגרת של שדה הולך ככה: HTML קוד:
document.getElementById('username').style.borderColor = 'SomeColor'; http://www.w3schools.com/htmldom/dom_obj_style.asp ד"א, תאבטח את הנתונים שקיבלת בGET לפני שאתה משווה בשאילתא.
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן." Last edited by daMn; 13-08-08 at 11:11.. |
![]() |
![]() |
# 8 | |
חבר מתקדם
|
ציטוט:
![]() הצלחתי =]
__________________
![]() HIGHDESIGN.co.il עיצוב ובניית אתרים. |
|
![]() |
![]() |
# 9 |
חבר וותיק
|
i still can't figure out why you are ignoring my comment?
jquery will save you a lot of time and will make things easier than ever (;
__________________
![]() |
![]() |
![]() |
# 10 |
הוסטסניון
|
אני מסכים איתך שJQuery מקצר את הדברים ומייעל את הקוד בכמה רמות, אני אישית מעריץ לא קטן של הFW הזה, יחד עם זאת אני חושב שלפני שניגשים לעבודה עם FW כלשהו קודם צריך להבין איך הכול עובד או לפחות רובו, ולפי התיאור הבנאדם צריך לצבור עוד ידע בJS וDOM.
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן." |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|