Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用.ajax将数据发送到php函数_Php_Jquery - Fatal编程技术网

使用.ajax将数据发送到php函数

使用.ajax将数据发送到php函数,php,jquery,Php,Jquery,我知道使用$.ajax将数据发送到php文件是这样的: $.ajax({ type: "POST", url: "some.php", data: { name: "John", location: "Boston" } }).done(function( msg ) { alert( "Data Saved: " + msg ); }); <?php foo($_POST); function foo($postData) { // Process the data var_

我知道使用$.ajax将数据发送到php文件是这样的:

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

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

我想知道的是,是否有可能发送该文件中特定函数的数据。如果是,你能告诉我怎么做吗?谢谢。

像这样创建some.php文件:

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

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

您不需要,但是您可以向url:someurl.php?function=MyFunction添加一个查询字符串,并使用$\u GET['function']找出哪个函数应该处理请求。

是的,因此您必须检查必须调用哪个函数。此外,无需在函数内部传递
POST
参数,因为
$\u POST
超全局数组
,您可以在函数内部访问它们,而无需传递参数

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"
}
?>

您可以通过以下代码来完成。 在ajax调用中再添加一个参数,比如file_name=your_function_name,例如,在这里,我将ajax请求作为您的数据发送,函数_name=getResult,它将在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
}
?>
$.ajax({
类型:“POST”,
url:“some.php”,
数据:{名称:“John”,位置:“Boston”,函数名称:“getResult”}
}).done(函数(msg){
警报(“保存的数据:“+msg”);
});

switch语句在您遇到更多情况时会得到优化。

您的意思是发送一个变量吗?我感觉您对什么是PHP脚本非常困惑,真的。您不能“将数据发送到PHP文件中的特定函数”,请不要鼓励人们使用通过url传递参数。一个合适的职位更安全,但不是没有风险,而是更可行。