1

你好,我想用 jQuery ajax 将多个数据发布到一个 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中我做了这样的事情:

<?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 数组,那么它可以正常工作,但我想使用这四个单独的数据。

4

2 回答 2

2

您输入错误的 ajaxurl查询ulr

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

编辑:如果您仍然遇到问题,请使用 somealert验证您要发送的数据,通过从浏览器手动导航到它来验证您的php脚本是否执行您希望它执行的操作,因为您提供了一个success回调,任何原因您re notasync等...验证一切

于 2012-11-27T17:21:16.297 回答
1

你在 ajax 函数中有错字,

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

您也不需要serialize文本字段中的值。就这样做,

jQuery.ajax({
url: <?php echo $path; //this the url where the php file is ?>,
type: 'POST',
data: {
addressOne: $('#Form #table .key :input').val(),
addressTwo: $('#Form #table_2 .key :input').val(),
additionalData: $('#Form #More :input').val(),
preloaded: <?php echo serialize($array); ?>,
action: 'sendIt'
 },
async: false,
cache: false,
success: function(data){
alert(data); //or console.log(data);
 }
});
于 2012-11-27T17:20:47.437 回答