לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 24-06-2007, 09:07
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 1 שנכתבה על ידי netaneldj שמתחילה ב "בעיה פשוטה עם JS - לא מוציא פלט."

אני מקוה שאתה מבין שבקוד הבא:
קוד:
onclick="javascript:addContent('value')"


סה"כ מה שהתכוונת לעשות זה להכניס מחרוזת שערכה "value" לתוך ערכו של אלמנט שסימן הזהות שלו (id) הוא input. בפקודה הנ"ל לא הכנסת ערך של משתנה (שזה מה שאני מניח שרצית לעשות באמצעות AJAX).

בקוד הבא:

קוד:
function addContent(input) { var input; document.getElementById('input').value = input; }


יש בעיה קטנה...
בהתחלה הגדרת משתנה input בפרמטר הראשון של הפונקציה addContent.
אח"כ הגדרת את המשתנה input כמשתנה חדש בשורה:
קוד:
var input;


זה למעשה גרם לאיתחול המשתנה input והצבת ערך null תמיד.
לכן לעולם לא ישתנה הערך של האלמנט שסימן הזהות שלו הוא "input".
אז כדי שהקוד הנ"ל יעבוד יותר טוב יש למחוק את השורה, כלומר שהקוד הסופי הוא:
קוד:
function addContent(input) { document.getElementById('input').value = input; }


ועוד הערה קצת חשובה: תמיד תנסה לתת לאלמנטים סימני זהות (id) או שמות (name) בעלי משמעות.
שם הזהות "input" לאלמנט שאני מניח שהוא input זה לא כדאי...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 24-06-2007, 09:59
צלמית המשתמש של netaneldj
  netaneldj netaneldj אינו מחובר  
 
חבר מתאריך: 01.05.06
הודעות: 7,861
Facebook profile
בתגובה להודעה מספר 2 שנכתבה על ידי DCD שמתחילה ב "אני מקוה שאתה מבין שבקוד..."

value הוא רק מחרוזת זמנית שהכנסתי לכאן כדי לא לערב PHP, במציאות במקום value פועל אצלי משתנה של PHP שמתאים את השם של הפריט שלוחצים עליו ומכניס אותו לפונקציה.

הסתכלתי בפונקציות שונות שאנשים בנו ב JS, וראיתי את השורה הנ"ל (var input).
ניסיתי איתה, בלעדיה.

ניסיתי גם עם javascript: וגם בלי.

שום דבר לא עובד, הבעיה היא שה debugger של הדפדפן לא מזהה את השורות של AJAX והן לא נכללות במקור, כך שאני לא יכול לדעת בדיוק איפה נמצאת הבעיה.


לצורך העניין, הנה הקוד המלא:


קוד:
<script type="text/javascript"> function ajaxFunction(value) { if (value.length==0) { document.getElementById("test").innerHTML=""; return; } var xmlHttp; try { xmlHttp=new XMLHttpRequest(); } catch (e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } //FROM HERE AJAX CODE xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { document.getElementById('test').innerHTML=xmlHttp. responseText; } } xmlHttp.open("GET","ajax.php?value="+value,true); xmlHttp.send(null); } //TILL HERE AJAX CODE function addContent(input) { document.getElementById('input').value = input; } </script> <center> <form name="myForm"> <b>search:</b> <input id="input" type="text" onkeyup="ajaxFunction(this.value);" name="username" /> </form> <div align="left" id="test"></div> </center>



והנה הדף שה AJAX מקושר אליו:



קוד PHP:
<?

header('Content-Type: text/html; charset=windows-1255');
$key = $_GET['value'];
$names = array("Anna","Brittany","Cinderella","Diana","Eva","Fiona","Gunda","Hege","Inga","Johanna","Kitty","Linda","Nina","Ophelia","Petunia","Amanda","Raquel","Cindy","Doris","Eve","Evita","Sunniva","Tove","Unni","Violet","Liza","Elizabeth","Ellen","Wenche","Vicky");
echo "<table width='10%' align=\"left\">";
foreach ($names as $name) {
if (preg_match("/^{$key}/i", $name))
echo "<tr><td width=\"10%\" onmouseover=\"this.style.background='#ecf8fb'\" onmouseout=\"this.style.background='white'\" style=\"cursor:default;\" onclick=\"javascript:addContent(".$name.")\">".$name."</td></tr>";
}
echo "</table>"; 
?>


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 24-06-2007, 10:42
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 3 שנכתבה על ידי netaneldj שמתחילה ב "value הוא רק מחרוזת זמנית..."

אני עברתי על הקוד בריפרוף...לא שמתי לב לבעיה.
גם כנראה העתקת את הקוד מ-w3schools, ככה שהסיכוי שהקוד לא תקין הוא קטן...למרות שאני זוכר שפעם מצאתי איזה טעות אצלם.

ועכשיו להערות ולדברים נוספים...:

1. במקום הקוד הבא:
קוד:
try { xmlHttp=new XMLHttpRequest(); } catch (e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } }


אני החלפתי אותו בקוד קצר יותר, ואני חושב שהוא יעיל יותר:

קוד:
var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") || new ActiveXObject("Microsoft.XMLHTTP") || new XMLHttpRequest();


זה חשוב באיזה מקום אתה שם את האובייקט, כי זה בודק קודם כל את האובייקט השמאלי ביותר והולך לכיוון הימני ביותר.

2. דבר נוסף...את הקוד של הוספת הערך נסה לכתוב מייד אחרי תגית ה-script, כלומר:

קוד:
<script type="text/javascript"> function addContent(input) { document.getElementById('input').value = input; } ...


יכול להיות שהקוד האחר שקשור ל-AJAX לא תקין, ומשום מה הדפדפן לא מודיע על אי-תקינות הקוד (קרה לי בעבר), ולכן הקוד של הוספת הערך לא פועל כי הוא נמצא אחרי הקוד שלא תקין.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 13:57

הדף נוצר ב 0.07 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר