3

これまで、フォームを検証するために純粋なJavaScriptを使用してきましたが、mysqliクエリをミックスに追加する必要があります。私だけがjqueryとajaxがあまり得意ではありません。簡単なログインフォームを作成できますが、これはもう少し複雑です。誰かが私にこれを検証するためにjquery/ajaxコンポーネントを追加する方法についてのポインタを教えてもらえますか?

foreach($_POST as $key=> $for) {

     if(!empty($for) && $key != 'send' && $key != 'title')  {

        $usercheck =  "SELECT email FROM users WHERE email = '$for'";
        $usercheck = $db->query($usercheck);

     if($usercheck->num_rows > 0) {$x="1"; continue;}
     if($usercheck->num_rows == 0){$x="2"; break;}
     }
  }

     if($x == "2") {$message = $for." is not a regestered email";}
     if($x == "1") {  // valid - submit.
4

2 に答える 2

1

あなたができることはこのように$.postを送ることです:

    $.post("test.php", { "post1": "something", "post2":"somethingelse" }, // those will be sent via post to test.php
  function(data){// the returned data
    console.log(data.return1); // here just logging to the console. **optional**
    console.log(data.return2); 
    // complete your process 
  }, "json"); // specifying the type as json also optional

あなたの中でtest.php

foreach($_POST as $key=> $for) {

 if(!empty($for) && $key != 'send' && $key != 'title')  {

    $usercheck =  "SELECT email FROM users WHERE email = '$for'";
    $usercheck = $db->query($usercheck);

 if($usercheck->num_rows > 0) {$x="1"; continue;}
 if($usercheck->num_rows == 0){$x="2"; break;}
 }
  }

 if($x == "2") {$data['message'] = $for." is not a regestered email";
   echo json_encode($data); // echo to pass back to $.post .. json_encode() in case of using json
   }
 if($x == "1") {  // valid - submit
  $data['message'] = 'valid'; // pass the message as valid post
echo json_encode($data); 
}

覚えて:

フォームを投稿する場合はevent.preventDefault()、フォームを手動で処理するためにjavascript関数に追加するために送信します。ここでそれについてもっと知ることができます。

于 2013-01-28T15:47:09.227 に答える
0

Ajaxフォームプラグインhttp://malsup.com/jquery/form/をご覧ください。

たとえば、次のように使用します。

$(document).ready(function() { 
    $('#myForm').ajaxForm(
    {
        beforeSend: function() {

        },
        success: function(response)
        {
                //wow, it worked, let's do something with response
        },
        uploadProgress: function(event, position, total, percentComplete) {
            /*e.g. a upload percentage label */ 
            //var percentVal = percentComplete + '%';
            //$('#myLoadingDiv').html(percentVal);
        },
        cache: false,
    });
});
于 2013-01-28T15:23:36.127 に答える