0

$.ajax を使用して php ファイルにデータを送信するには、次のようにします。

$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});

私が知りたいのは、そのファイル内の特定の関数でデータを送信できるかどうかです。もしそうなら、その方法を教えてもらえますか? ありがとうございました。

4

5 に答える 5

1

次のコードで実行できます。file_name=your_function_name のような ajax 呼び出しにもう 1 つのパラメーターを追加します。

$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston",  function_name: "getResult"}
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});

<?php
$function_name = $_POST['function_name']
switch($function_name){
    case $function_name:
        getResult();
        break;
    case $function_name:
        updateFunction();
        break
}
?>

switch ステートメントは、より多くのケースがある場合に最適化された方法です。

于 2013-08-02T10:24:31.263 に答える
1

次のように some.php PHP ファイルを作成します。

<?php

foo($_POST);
function foo($postData) {
  // Process the data
  var_dump($postData);
}

上記のコードは、指定された関数「foo」にポストされたデータをすぐに渡します。

于 2013-08-02T10:09:36.520 に答える
0

アクション パラメータを ajax に追加します。

$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston", action: "action1" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});

そしてあなたのphpファイルで:

<?php
if($_POST['action'] == action1) {
  action1(); //Do the function named "action1"
}
?>
于 2013-08-02T10:12:30.630 に答える
0

そうではありませんが、クエリ文字列 someurl.php?function=MyFunction を URL に追加し、 $_GET['function'] を使用して、どの関数がリクエストを処理するかを調べることができます。

于 2013-08-02T10:10:32.627 に答える
0

はい、そのためには、どの関数を呼び出す必要があるかを確認する必要があります。また、パラメータを介さずに関数内でアクセスできるため、POST関数内でパラメータを渡す必要はありません。$_POSTsuperglobal array

type: "POST",
url: "some.php",
data: { name: "John", location: "Boston", func : 'add' }

some.php

if(isset($_POST['func']) && $_POST['func'] == 'add') {
   // call function here and pass parameter
   func_add();
}
于 2013-08-02T10:11:05.287 に答える