我知道使用 $.ajax 将数据发送到 php 文件是这样的:
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
我想知道的是是否可以在该文件内的特定函数上发送数据。如果是,你能告诉我怎么做吗?谢谢你。
像这样创建你的 some.php PHP 文件:
<?php
foo($_POST);
function foo($postData) {
// Process the data
var_dump($postData);
}
上面的代码将立即传递发布到给定函数'foo'的数据。
您可以通过以下代码来完成。向您的 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 语句是优化的方式。
你没有,但你可以在 url 中添加一个查询字符串: someurl.php?function=MyFunction 并使用 $_GET['function'] 找出应该处理请求的函数。
是的,为此你必须检查你必须调用哪个函数。也不需要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();
}
将动作参数添加到您的 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"
}
?>