PHP - أجاكس وبي إتش بي
يستخدم AJAX لإنشاء المزيد من التطبيقات التفاعلية.
مثال AJAX PHP
سيوضح المثال التالي كيف يمكن لصفحة الويب التواصل مع خادم الويب بينما يكتب المستخدم الأحرف في حقل الإدخال:
مثال
Start typing a name in the input field below:
Suggestions:
شرح المثال
في المثال أعلاه ، عندما يكتب المستخدم حرفًا في حقل الإدخال ، يتم تنفيذ وظيفة تسمى "showHint ()".
يتم تشغيل الوظيفة بواسطة حدث onkeyup.
ها هو كود HTML:
مثال
<html>
<head>
<script>
function showHint(str) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "gethint.php?q=" + str, true);
xmlhttp.send();
}
}
</script>
</head>
<body>
<p><b>Start typing a name in the input field below:</b></p>
<form action="">
<label for="fname">First name:</label>
<input type="text" id="fname" name="fname" onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
شرح الكود:
أولاً ، تحقق مما إذا كان حقل الإدخال فارغًا (str.length == 0). إذا كان الأمر كذلك ، فامسح محتوى العنصر النائب txtHint واخرج من الوظيفة.
ومع ذلك ، إذا لم يكن حقل الإدخال فارغًا ، فقم بما يلي:
- قم بإنشاء كائن XMLHttpRequest
- قم بإنشاء الوظيفة التي سيتم تنفيذها عندما تكون استجابة الخادم جاهزة
- أرسل الطلب إلى ملف PHP (gethint.php) على الخادم
- لاحظ أنه تمت إضافة المعلمة q إلى عنوان url (gethint.php؟ q = "+ str)
- ومتغير str يحمل محتوى حقل الإدخال
ملف PHP - "gethint.php"
يتحقق ملف PHP من مجموعة من الأسماء ، ويعيد الاسم (الأسماء) المطابقة إلى المتصفح:
<?php
// Array with names
$a[] = "Anna";
$a[] = "Brittany";
$a[] = "Cinderella";
$a[] = "Diana";
$a[] = "Eva";
$a[] = "Fiona";
$a[] = "Gunda";
$a[] = "Hege";
$a[] = "Inga";
$a[] = "Johanna";
$a[] = "Kitty";
$a[] = "Linda";
$a[] = "Nina";
$a[] = "Ophelia";
$a[] = "Petunia";
$a[] = "Amanda";
$a[] = "Raquel";
$a[] = "Cindy";
$a[] = "Doris";
$a[] = "Eve";
$a[] = "Evita";
$a[] = "Sunniva";
$a[] = "Tove";
$a[] = "Unni";
$a[] = "Violet";
$a[] = "Liza";
$a[] = "Elizabeth";
$a[] = "Ellen";
$a[] = "Wenche";
$a[] = "Vicky";
// get the q parameter from URL
$q = $_REQUEST["q"];
$hint = "";
// lookup all hints from array if $q is different from ""
if ($q !== "") {
$q = strtolower($q);
$len=strlen($q);
foreach($a as $name) {
if (stristr($q, substr($name, 0, $len))) {
if ($hint === "") {
$hint = $name;
} else {
$hint .= ", $name";
}
}
}
}
// Output "no suggestion" if no hint was found or output correct values
echo $hint === "" ? "no suggestion" : $hint;
?>