التحقق من المدخل عن طريق الجى كويرى
السلام عليكم
يا ريث المساعدة في الجي كويري بسبب ضعف خبرتي فيها المشكل كالتالي عندي الصفحة الذي و التي فيها فورم بسيط <html> <head> <title>title</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script> <script type="text/javascript"> function get_link(){ $.post('result.php', { link: form.link.value }, function(resultat){ $('#resultat').html(resultat).show(); }); } </script> </head> <body> <form name="form" action="page.php" method="post"> <label for="link">link</label> <input type="text" name="link" value="" /> <input type="button" value="submit" onclick="get_link();"/> </form> <div id="resultat"></div> </body> </html>و عندي صفحة البي اتش بي ذي و التي يتم فيها التحقق <?php $l = $_POST['link']; $p = "www.google.com"; if($l == $p){ echo'link existe'; }else{ echo'error'; } ?> الذي اريده هو ببساطة إضافة شرط في أكواد الجي كويري أنه إذا كانت الرسالة error يبقى في نفس الصفحة و إذا ظهر link existe يعمل Submit للفورم و ينتقل الى الصفحة page.php أنا جربت عدة شروحات و طرق و كل مرة يظهر لي خطأً يا ريث من عنده الحل يفيدني بانتظار المساعدة
2 إجابات
باستعمال نفس كود MacOS ونفس الفكرة ولكن اضافة بعض التجميلات وهى العد التنازلى عند وجود الللنك للتحويل ، وسنفعل ذلك عن طريق استخدام "العد التنازلى مع مكتبة الجى كويرى" وهذا هو الكود
<html> <head> <title>title</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script> <script type="text/javascript"> function get_link(){ var link = $("form[name='form']").find("input[name='link']").val(); $.post('result.php', { link: link }, function(data){ if(data.response == 1){ $('#resultat').html('الرابط موجود سيتم تحويلك خلال <strong id="countdown"></strong> ثانية').show(); $('#resultat').find('#countdown').countDown({ startNumber: 5, callBack: function(me) { $('#resultat').text('تم التحميل ، سيتم تحويلك الان').css('color','#090'); $("form[name='form']").submit(); } }); }else{ $('#resultat').html('حدث خطأ ما').show(); } },'json'); } jQuery.fn.countDown = function(settings,to) { settings = jQuery.extend({ startFontSize: '12px', endFontSize: '12px', duration: 1000, startNumber: 10, endNumber: 0, callBack: function() { } }, settings); return this.each(function() { if(!to && to != settings.endNumber) { to = settings.startNumber; } $(this).text(to).css('fontSize',settings.startFontSize); $(this).animate({ 'fontSize': settings.endFontSize },settings.duration,'',function() { if(to > settings.endNumber + 1) { $(this).css('fontSize',settings.startFontSize).text(to - 1).countDown(settings,to - 1); } else { settings.callBack(this); } }); }); }; </script> </head> <body> <form name="form" action="page.php" method="post"> <label for="link">link</label> <input type="text" name="link" value="" /> <input type="button" value="submit" onclick="get_link();"/> </form> <div id="resultat"></div> </body> </html> بواسطة: molhm 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا مشكور أخي أظن هناك خطأ ما لأن الكود لم يعمل عليك تشغيله على الـlocalhost حتى يعمل الكود الذي أعطيتني أنت أخي شغال تمام بس هذا الذي وضع الأخ ملهم غير شغال أظن يوجد خطأ ما, + و عندي استفسار: عند عمل الاستعلام من ملف البي اتش بي يقوم بالرجوع بقيمة response هل هناك إمكانية ليرجع لي متغير آخر مع response و هذا المتغير هو قيمة من قاعدة البيانات. بالتأكيد تستطيع عليك فقط اضافته فى المصفوفة array( 'response' => $response , 'name' => 'anass') نعم قمت بعمل نفس الشيء في الكود الذي وضعت لي و نجح الأمر مشكور أخي مجدداً آسف أني أتعبتك معي أخي لكن عندي استفسار أخير لو تسمح, وهو أنه عند الضغط على الزر انتر ENTER من الكيبورد يتم تنفيذ الأوامر دون الإكترات بالشروط :S على ما أظن أن المشكل بسبب <input type="button" لكن عندما أغيره الى <input type="submit" لا يعمل الكود :S ليس عندي خبرة بالجيكويري لكن حسب ما رأيت في موقع جيكويري عليك إضافة return في <input type="submit إذا كان صحيح يعمل ارسال و إذا كان خاطئ لا يعمل حتى لا يتم تجاوزه بالضغط على enter من لوحة المفاتيح
عليك وضع الرسائل فى كود الجى كويرى وليس البى اتش بى واستعمال نوع البيانات المسمى الـjson.
الجى كويرى<html> <head> <title>title</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script> <script type="text/javascript"> function get_link(){ var link = $("form[name='form']").find("input[name='link']").val(); $.post('result.php', { link: link }, function(data){ if(data.response == 1){ $('#resultat').html('الرابط موجود').show(); $("form[name='form']").submit(); }else{ $('#resultat').html('حدث خطأ ما').show(); } },'json'); } </script> </head> <body> <form name="form" action="page.php" method="post"> <label for="link">link</label> <input type="text" name="link" value="" /> <input type="button" value="submit" onclick="get_link();"/> </form> <div id="resultat"></div> </body> </html>كما ترى التعديلات قمت بوضع نوع البيانات json على دالة الارسال post وتحديد المتغير data للرجوع بالبيانات بعد المرور على السيرفر فى شكل object و كود التاكيد اسمه response البى اتش بى<?php $l = $_POST['link']; $p = "www.google.com"; if($l == $p){ $response = 1; }else{ $response = 2; } exit( json_encode( array( 'response' => $response ) ) ); ?>وطبعا فى حالة ان اللنك موجود اى شرط البى اتش بى $l == $p وبذلك سيكون الـ$response يساوى 1 وبذلك فسيتحقق الشرط الاول وهو اظهار "الرابط موجود" وارسال الفورم باستخدام دالة submit() بواسطة: MacOS 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا نعم مشكور اخي |