אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » מדריך ל- AJAX

מדריך ל- AJAX

רן בר-זיק יוני 2, 2009 12:02 am אין תגובות

מדריך ודוגמאות לשליחת מידע ב-AJAX ל-PHP והדפסתו חזרה בדף.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

חשוב! המאמר הזה מאוד מיושן, עדיף להשתמש היום ב-fetch. קישור למאמר על fetch

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

אני מניח שיש לקוראים ידע בסיסי ב-PHP, JavaScript ו-HTML. במידה ולא, ישנם שפע של מדריכים בעברית בנושאים האלו שיכולים להביא אתכם לנקודה שבה תבינו את המדריך הזה.

ל-AJAX יש שני צדדים, צד ה-client (ה-HTML וה-JavaScript) וצד ה-server (צד השרת, ה-PHP במקרה שלנו). AJAX הוא ניהול תקשורת עם השרת דרך אובייקט JavaScript שנקרא xmlhttp object שמאפשר ל-JavaScript לשלוח ולקבל דרכו מידע.

הדוגמא שאנו נשתמש בה הוא טופס HTML פשוט ששולח באמצעות AJAX מחרוזת טקסט באנגלית כמו 'hello' והשרת מחזיר מחרוזת טקסט הפוכה. הסקריפט שלנו גם צריך להציג את התשובה וכל זאת כמובן בלי ריפרושים.

צד השרת

לשרת לא ממש אכפת מול מי הוא עובד. הכנת צד השרת לעבודה עם AJAX אינה שונה במקרה שלנו מהכנה שלו לעבודה מול טוםס שאינו אג'אקסי. אנחנו מניחים שהוא מקבל פרמטר ב-post או ב-get מבצעים רוטינות אבטחה קצרה ומדפיס חזרה את התגובה המבוקשת שבמקרה שלנו היא היפוך של מחרוזת הטקסט שאנו שולחים. הנה הקוד הפשוט למדי של ה-PHP:


<?php
if(ctype_alpha($_REQUEST['myName']))
{
	$string =$_REQUEST['myName'];
	$result = strrev($string);
	print $result;
}
else
{
	die;
}
?>

נשמור את הקוד תחת ajax.php ונעלה אותו לשרת הפיתוח שלנו. ו… זהו! אם אתם לא סגורים על מה זה העלאה לשרת פיתוח, אז פשוט תשתמשו ב-WAMP (ב-coders יש מדריך קצר שיסייע לכם בכך).

צד לקוח: הכנת ה-HTML

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


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Test page</title>

    
</head>
<body>
    <form>
	    <fieldset>
		    <label>
		    	Text One:
		    </label>
		    <input type="text" name="myName" id="myName" title="required">
	    </fieldset>
	    <input type="button" value="go and test me" onclick="sendRequest()">
    </form>
    <div id="results" > 
    </div>
</body>
</html>

הטופס הזה שונה מטופס רגיל בכמה מובנים. ראשית, אין ל-form שום action או method כמו בטפסים סטנדרטיים. שנית, אין כפתור submit אלא סתם כפתור שמפעיל פונקציה שנקראת sendRequest ששולחת אותנו לפונקצית JavaScript. פונקצית ה-JavaScript היא זו שאחראית על הוודו של שליחת המידע שיש בטופס, קבלתו ואחרי כן הדפסתו בדף עצמו. ההדפסה תתקיים ב-div שה-id שלו הוא result.

צד לקוח: הכנת ה-JavaScript

יצירת ה-JavaScript גם היא פשוטה למדי ונחלקת ל-3 שלבים. השלב הראשון הוא לקבוע את דפדפן הגולש על מנת להבין באיזה XMLHttpRequest להשתמש. השלב השני הוא שליחת המידע דרך אובייקט XMLHttpRequest והשלב השלישי הוא קבלת התוצאה והדפסתה. זה פשוט בדיוק כמו שזה נשמע. הדוגמא שהכנתי היא רזה מאד ומעבירה רק פרמטר אחד כ-string. שימו לב להערות שיש בקוד להבנה נוספת:


<script type="text/javascript">
    // קביעת משתנה על מנת שיהיה האובייקט שלנו
    var req = createXMLHttpRequest();
//תחילת פונקציה 1: בדיקת דפדפן המשתנה שמשמש כאובייקט מקבל את התוצאה של הפונקציה הזו
function createXMLHttpRequest() {
 var ua;
 if(window.XMLHttpRequest) {
 try {
  ua = new XMLHttpRequest();
 } catch(e) {
  ua = false;
 }
 } else if(window.ActiveXObject) {
  try {
	ua = new ActiveXObject("Microsoft.XMLHTTP");
  } catch(e) {
	ua = false;
  }
 }
return ua;
}
// סוף פונקציה 1

// תחילת פונקציה 2, זו שכפתור השליחה בטופס קורא לה
function sendRequest()     
{
    var str = ""; // הגדרת משתנה שיהיה מחרוזת טקסט
    str = document.getElementById("myName").value; // לוקחים את המשתנה הזה ונותנים לו ערך מתוך הטופס
    req.open('GET', 'ajax.php?myName='+str); // שליחת המידע לשרת
    req.onreadystatechange = handleResponse;  // זו התגובה מהשרת שעוברת לפונקציה שלוש. ברגע שיש מצב 4 אז פונקציה 3 עובדת
    req.send(null);// חיוני
}
// סוף פונקציה 2
// תחילת פונקציה 3 מקבלת את הפלט מהשרת מצב 4 ויורה את המידע חזרה
function handleResponse() {
 if(req.readyState == 4) //מצב 4 זה כאשר הבקשה חזרה בהצלחה
 {
 var response = req.responseText;
  document.getElementById("results").innerHTML = response; // הדפסה פשוטה של התוצאות
 }
}
// סוף פונקציה 3
</script>

וזהו, שמים את ה-script ב-head ובודקים את הכל. העליתי גם את הגרסה הזו לשרת שלי כדי שתוכלו להתרשם ולבדוק.

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

כדאי לזכור ש-AJAX, בדומה ל-JavaScript כפוף לCross domain restriction. על מנת ליצור AJAX שיקיים תקשורת עם דומיין אחר, יש להשתמש בפרוקסי. לקריאת מאמר שמסביר על AJAX עם פרוקסי ב-PHP.

מפתחים מתקדמים יותר יוכלו לנסות שימוש ב-JSONP על מנת לקיים תקשורת עם דומיין אחר או להשתמש בפלאש (הנה דוגמא המשתמשת ב-flXHR).

מומלץ לעיין ב-jQuery AJAX המיועד להסבר כיצד לעשות AJAX עם jQuery וכן במדריך המסביר כיצד לעשות טופס יצירת קשר עם AJAX ו-jQuery.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
AJAX סקריפטים
ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד