0

検証を行いたいフォームがあります。しかし、クエリを書いて検証したいフィールドがあります。ポストバック後にフォームに入力されたすべての値が失われるため、フォームをポストバックしたくありません。ポストバックなしでクエリを作成する方法はありますか、または値を保持する方法をポストバックする必要がある場合はありますか? 助けてください

4

3 に答える 3

3

AJAX (jQuery) を使用している場合は、必要に応じてブラウザーを更新せずに XML リクエストを送信できます。このためには、いくつかのテキストフィールドと送信ボタンを含むフォームを作成し、すべてに ID を与え、ボタンのクリック リスナーを追加します。

$('#submit-button').click(function() {
    var name = $('#username').val();
    $.ajax({
        type: 'POST',
        url: 'php_file_to_execute.php',
        data: {username: name},
        success: function(data) {
            if(data == "1") {
                document.write("Success");   
            } else {
                document.write("Something went wrong");
            }
        }
    });
});

ユーザーが "submit-button"-ID のボタンをクリックすると、この関数が呼び出されます。次に、POST を使用してテキスト フィールドの値を php_file_to_execute.php に送信します。この .php ファイル内で、ユーザー名を検証して結果を出力できます。

if($_POST['username'] != "Neha Raje") {
    echo "0";
} else {
    echo "1";
}

お役に立てれば幸いです。:)

于 2012-05-22T05:03:38.560 に答える
0

あなたはあなたが書いたものを言い換えたいかもしれません、それは少し不明確です。参考までに、私はこのようにします。

<form method="post">
Text 1: <input type="text" name="form[text1]" value="<?=$form["text1"]?>" size="5" /><br />
Text 2: <input type="text" name="form[text2]" value="<?=$form["text2"]?>" size="5" /><br />
<input type="submit" name="submit" value="Post Data" />
</form>

そして、私がデータを処理しているとき、それはこのようなものです。

<?php
if ($_POST["submit"]) {
 $i = $_POST["form"];
 if ($i["text1"] or ..... ) { $error = "Something is wrong."; }
 if ($i["text2"] and ..... ) { $error = "Maybe right."; }

 if (!$error) {
  /*
   * We should do something here, but if you don't want to return to the same
   * form, you should definitely post a header() or something like that here.
   */
   header ("Location: /"); exit;
 }
 //
}

if (!$_POST["form"] and !$_GET["id"]) {
} else {
 $form = $_POST["form"];
}
?>

この方法では、値が失われるように設定しない限り、値が失われることはありません。

于 2012-05-22T05:26:37.243 に答える
0

jQuery の$.post()メソッドを次のように使用します。

$('#my_submit_button').click(function(event){
  event.preventDefault();
  var username = $('#username').val();
  $.post('validate.php', {username: username, my_submit_button: 1}, function(response){
   console.log(response); //response contain either "true" or "false" bool value 
  });
});

次のように、validate.php で非同期的にフォームからユーザー名を取得します。

if(isset($_POST['my_submit_button']) && $_POST['my_submit_button'] == 1 && isset($_POST['username']) && $_POST['username'] != "") {

  // now here you can check your validations with $_POST['username']
  // after checking validations, return or echo appropriate boolean value like:
  // if(some-condition) echo true;
  // else echo false;

}

: AJAX を使用してデータベース変更スクリプトを実行する前に、セキュリティ関連の脆弱性やその他の問題について理解しておくことを検討してください。

于 2012-05-22T05:42:48.483 に答える