0

初めてjsonでフォームを検証しようとしています。今日読んだことを除いて、すべての詳細について正確にはわかりません。残念ながら、私がやろうとしていることの例はあまりありませんでした。つまり、複数の入力フィールドをチェックして、それらが mysql データベースにあるかどうかをチェックする必要があります。そのため、それらをすべてチェックするphpページに送信する必要があり、データベースにないものが見つかった場合は、foreachループが中断され、その変数値をアラートで使用できます$value." is not a registered email";. 私は、HTMLフォームページに値を返す方法を正確に知りません。だから私は私が持っているものだけをあなたに見せます。おそらく100万のエラーがあります。あなたが与えるどんな助けも大歓迎です。

フォームページ:

<script>
$(function(){
    $("#send").click(function(e){
       e.preventDefault();  

        $.post("ajax2.php", $("#myForm").serialize(),
        function(data){
            if(data.check == '2'){
            alert(data.message);
            }
        }, "json");    
    });
});
</script>

<html>
  <form name="myForm" action="ajax.html" method="post" enctype="multipart/form-data">
    <input id="file" name="uploaded[]" type="file" multiple /><br>
    title: <input name="title" id ="title"><br>
    box1:  <input type="text" id = "a" name="a"><br>
    box2:  <input type="text" id = "b" name="b"><br>
    box3:  <input type="text" id = "c" name="c">
    <input type="submit" name="send" id="send" value="send" ">
  </form>
</html>

そしてajax2.phpで:

<?php
$db = new mysqli('localhost', 'root', 'oreo', 'test');
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) {$check="1"; continue;}
 if($usercheck->num_rows == 0){$check="2"; break;}
  }
}

 if($check == "2") {

   $message = $for." is not a regestered email";
   echo json_encode($message);
  }
   $return_arr["check"] = $check;
   $return_arr["message"] = $message;

   echo $return_json;
4

1 に答える 1

1

それらをjson文字列としてエコーバックする必要があります:

http://us3.php.net/manual/en/function.json-encode.php

次に、ajax 成功ハンドラー/コールバックは、その文字列を js オブジェクトにデコードする必要があります...

JSON文字列をデコードするには?

JSON のデコード方法について説明します。Javascript Object Notation が、その名前の言語で適切なネイティブ デコーダーを持っていないように見えるのは、奇妙でやや悲しいことです。(あれば訂正お願いします!)

于 2013-01-28T21:26:38.223 に答える