الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفيه عمل بحث فورى بالبى اتش بى و الجافا اسكربت

بدأه ahmed_ghanam في 27 مارس 2011 · 2 رد · 1,122 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

اخوانى الكرام احاول ان انشىء فورم تسجيل الاعضاء بالهتمل والبى اتش بى و الجافا اسكربت و الاجاكس

هذه الفورم تحتوى على عده خانات منها الاسم و الاميل اريد من النموذج فى حدث الkeyup ان ياخذ اسم المستخدم الذى كتب و يذهب الى السرفر ثم يجرى بحث فى قواعد البيانات فاذا وجد تطابق بينه وبين مستخدم اخر اظهر له فى الspan ان الاسم هذا مستخدم من قبل تمام

هذه هى الاكواد الذى انشئتها ولكنها لا تنفذ

كود الاتش تى ام ال

</head>
<body>
<form action ="testinphp.php" method= "post" name="form_register" id="form_register">
<h2>برجاء ملاء جميع الحقول التاليه</h2>
<fieldset class="user"><legend>معلومات المستخدم :</legend>
<br/> ادخل اسم العضويه :
<br/>( برجاء التاكد من ادخال اسم العضويه بشكل صحيح )<br/>
<input type="text" id="user_name" name="user_name"  maxlength="22" size="35"
onkeyup="showUser(user_name);"/><span id="useratten"></span><br/><br/>

كود الجافا اسكربت

function showUser(user_name) {
    if (user_name == "") {
        document.getElementById("useratten").innerHTML = "";
         }
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
     else{
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("useratten").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "getuser.php?q=" + user_name, true);
    xmlhttp.send();
}

المفروض ان الكود يرسل الاسم الى ملف البى اتش بى الذى سوف يتولى البحث

كود البى اتش بى

<?php
require_once("includes/config.php");

$q=$_GET["q"];

$sql="SELECT * FROM members WHERE username = '".$q."'";

$result = mysql_query($sql);

if ($resul!=0){
echo "اسم العضويه الذى ادخلته مستخدم من قبل";
  }
else{
echo "اسم العضويه الذى ادخلته صحيح وغير مستخدم من قبل";
     return;
}
?>

هذه الاكواد لا تعمل بالطريقه المطلوبه فهل يتفضل احد الاعضاء بشرح الخطا

و السلام عليكم ورحمه الله وبركاته

#2

السلام عليكم ,عندك مشكلتين

اول واحدة فى البى اتش بى , انت عملت شيك لو المتغير result بيساوى صفر ولا لا , و المتغير result لا يحمل عدد الصفوف !! وعشان تجيب عدد الصفوف استخدم الكود التالى واعمل شيك بالمتغير الجديد result_check والذى يحوى عدد الصفوف

$result = mysql_query($sql);
$result_check = mysql_num_rows($result);

if ($result_check != 0){
echo "اسم العضويه الذى ادخلته مستخدم من قبل";
return;
  }
else{
echo "اسم العضويه الذى ادخلته صحيح وغير مستخدم من قبل";
     return;
}

المشكلة التانية فى الفورم فى امر الجافا سكريبت اللى فى الonkeyup , انت محتاج تبعت قيمة العنصر اللى اسمه user_name واللى هو input , فاستبدل الأمر داخل ال onkeyup بالأمر التالى :

showUser(document.getElementById('user_name').value);
1
#3

شكرا اخى كريم على التعديل لقد اشتغل الكود تمام

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…