0

現在、PHP と AJAX を使用してフォームの検証をライブで行おうとしています。基本的に-フィールドの値をAJAXを介してPHPスクリプトに送信する必要があり(それを実行できます)、送信したデータを使用してそのPHPファイル内で関数を実行する必要があります。どうやってやるの?

JQuery:

$.ajax({
  type: 'POST',
  url: 'validate.php',
  data: 'user=' + t.value,   //(t.value = this.value),
  cache: false,
  success: function(data) {
    someId.html(data);
  }
});

Validate.php:

// ここで、この関数で送信した "user" 値を使用する必要があります。これを行うにはどうすればよいですか?

function check_user($user) {
  //process the data
}

関数を使用せず、validate.php で生の php のみを使用すると、データが送信され、その中のコードが実行され、すべてが好きなように機能しますが、すべての機能を追加すると、物事が非常に乱雑になるので、別の関数を使用することを好みます.

短くするために、関係のない多くのコードを削除しました。

4

5 に答える 5

2

1) これは見栄えが悪い

data: 'user=' + t.value,   //(t.value = this.value),

これはいいね

data: {user: t.value},  

2) $_POST を使用する

function check_user($user) {
    //process the data
}
check_user($_POST['user'])
于 2013-02-04T14:41:16.297 に答える
1

validate.php で、従来の POST リクエストを受け取ります。次のように、テストする変数に応じて関数を簡単に呼び出すことができます。

<?php

if (isset($_POST['user'])) {
    $result = check_user($_POST['user']);
}
elseif (isset($_POST['email'])) {
    $result = check_email($_POST['email']);
}
elseif (...) {
    // ...
}

// returning validation result as JSON
echo json_encode(array("result" => $result));
exit();

function check_user($user) {
   //process the data
   return true; // or flase
}

function check_email($email) {
   //process the data
   return true; // or false
}

// ...
?>
于 2013-02-04T14:47:14.560 に答える
1

ファイル内で関数を呼び出すだけです。

if(isset($_REQUEST['user'])){
    check_user($_REQUEST['user']);
}
于 2013-02-04T14:39:44.560 に答える
0

データは$_POSTグローバル変数で送信されます。check_user 関数を呼び出すときにアクセスできます。

check_user($_POST['user']);

ただし、これを行う場合は、悪意のあるコンテンツがその中に送信されていないかどうか、フィールド値を確認することを忘れないでください.

于 2013-02-04T14:40:50.813 に答える
-1

これが私がそれを行う方法です

Jqueryリクエスト

$.ajax({
            type: 'POST',
            url: "ajax/transferstation-lookup.php",
            data: {
                'supplier': $("select#usedsupplier").val(),
                'csl': $("#csl").val()
            },
            success: function(data){
                if (data["queryresult"]==true) {
                    //add returned html to page
                    $("#destinationtd").html(data["returnedhtml"]);
                } else {
                    jAlert('No waste destinations found for this supplier please select a different supplier', 'NO WASTE DESTINATIONS FOR SUPPLIER', function(result){ return false; });
                }
            },
            dataType: 'json'
        });

PHPページ は2つの入力を受け取るだけです

$supplier = mysqli_real_escape_string($db->mysqli,$_POST["supplier"]);
$clientservicelevel = mysqli_real_escape_string($db->mysqli,$_POST["csl"]);

それらをクエリで実行します。今私の場合、json配列内に保存された生のhtmlを返すだけで、クエリが成功したか失敗したかを示すチェックフラグが付いています

$messages = array("queryresult"=>true,"returnedhtml"=>$html);
echo json_encode($messages); //encode and send message back to javascript

最初の JavaScript を振り返ると、queryresult に条件があり、生の html を div に吐き出すだけで、必要なことは何でもできます。

于 2013-02-04T14:42:02.380 に答える