Php jQuery ajax在发布多个数据时不返回任何内容

Php jQuery ajax在发布多个数据时不返回任何内容,php,ajax,jquery,Php,Ajax,Jquery,您好,我想用jQueryAjax将多个数据发布到一个php文件中,但是当我执行该函数时,它不会返回任何内容,php也不会获取数据 我的函数如下所示: function sendForm(){ jQuery.ajax({ url: <?php echo $path; //this the url where the php file is ?>, type: 'POST', data: { addressOne: jQuery('#Form #table

您好,我想用jQueryAjax将多个数据发布到一个php文件中,但是当我执行该函数时,它不会返回任何内容,php也不会获取数据

我的函数如下所示:

function sendForm(){
  jQuery.ajax({
   url: <?php echo $path; //this the url where the php file is ?>,
   type: 'POST',
   data: {
    addressOne: jQuery('#Form #table .key :input').serialize(),
    addressTwo: jQuery('#Form #table_2 .key :input').serialize(),
    additionalData: jQuery('#Form #More :input').serialize(),
    preloaded: <?php echo serialize($array); ?>,
    action: 'sendIt'
   },
   async: false,
   cache: false,
   success: function(data){
     alert(data); //or console.log(data);
   }
  });
}
<?php
function handleData() {
  parse_str($_POST['addressOne'], $arrayOne);
  parse_str($_POST['addressTwo'], $arrayTwo);
  parse_str($_POST['additionalData'], $arrayThree);
  $preloaded = unserialise($_POST['preloaded']);
  //than do some stuf here for example print_r all...
}

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    switch($action) {
        case 'sendIt' : handleData();
        break;
        //etc...
    }
}
?>
函数sendForm(){
jQuery.ajax({
网址:,
键入:“POST”,
数据:{
addressOne:jQuery('#Form#table.key:input').serialize(),
Address2:jQuery('#Form#table_2.key:input').serialize(),
additionalData:jQuery(“#表单#更多:输入”).serialize(),
预加载:,
动作:“发送”
},
async:false,
cache:false,
成功:功能(数据){
警报(数据);//或控制台.log(数据);
}
});
}
在php中,我做了如下操作:

function sendForm(){
  jQuery.ajax({
   url: <?php echo $path; //this the url where the php file is ?>,
   type: 'POST',
   data: {
    addressOne: jQuery('#Form #table .key :input').serialize(),
    addressTwo: jQuery('#Form #table_2 .key :input').serialize(),
    additionalData: jQuery('#Form #More :input').serialize(),
    preloaded: <?php echo serialize($array); ?>,
    action: 'sendIt'
   },
   async: false,
   cache: false,
   success: function(data){
     alert(data); //or console.log(data);
   }
  });
}
<?php
function handleData() {
  parse_str($_POST['addressOne'], $arrayOne);
  parse_str($_POST['addressTwo'], $arrayTwo);
  parse_str($_POST['additionalData'], $arrayThree);
  $preloaded = unserialise($_POST['preloaded']);
  //than do some stuf here for example print_r all...
}

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    switch($action) {
        case 'sendIt' : handleData();
        break;
        //etc...
    }
}
?>

我不知道我做错了什么?是否有更好的方法发布多个数据


如果我只使用一个数据,就像我正在序列化整个表单一样,并且不发布序列化的php数组,那么它就可以正常工作,但我希望使用这四个单独的数据。

您在ajax函数中遇到了一个输入错误

 url: <?php echo $path; ?>, //needs to be url, not ulr

您将ajax查询
url
ulr

考虑为你的浏览器使用一个插件,比如,我很确定它会发现错误,你不需要在这里询问


编辑:如果您仍然遇到问题,请验证您将要发送的数据以及一些
警报
,通过从浏览器手动导航到
php
脚本,验证您的
php
脚本是否执行了您希望它执行的操作,因为您提供了
成功
回调,以及任何您不
异步
的原因等等。。。验证所有内容

$path是一个url抱歉,我没有对它发表评论,我将编辑我的帖子以更正它。如果我不序列化,jquery将只获取第一个输入的值,并且不会有像email或first_name这样的键,#table and#table 2有6个输入字段(email、first_name、last_name、zip、city、address#1)。这是一个类型错误,因为我键入了它,但没有复制。我不确定你的意思,数据是发布的,根据fireBug,但php没有做任何事情。仅当我回显已发布的数据,如
echo$\u post['addressOne']
时,但我需要在php中使用一个数组,如
[addressOne]=>数组([email]=>some@email.com,[first_name]=>myname//etc…)
如果执行解析,则会失败。正如Boris告诉您的,验证序列化是否满足您的期望谢谢!最后我发现了错误。我是个十足的白痴:我在php文件中的函数外有parse_str,这与我在这里发布的不同,这导致了空返回。