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

像这样创建你的 some.php PHP 文件:

<?php

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

上面的代码将立即传递发布到给定函数'foo'的数据。

于 2013-08-02T10:09:36.520 回答
1

您可以通过以下代码来完成。向您的 ajax 调用添加一个参数,例如 file_name=your_function_name,例如在这里我使用 function_name=getResult 将 ajax 请求作为您的数据发送,它将调用 php 文件中的 getResult 函数。

$.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 回答
0

你没有,但你可以在 url 中添加一个查询字符串: someurl.php?function=MyFunction 并使用 $_GET['function'] 找出应该处理请求的函数。

于 2013-08-02T10:10:32.627 回答
0

是的,为此你必须检查你必须调用哪个函数。也不需要POST在函数内部传递参数,因为您可以在函数$_POST内部superglobal 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 回答
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 回答