使用AJAX将数组发布到PHP(初学者)

时间:2014-02-15 03:05:52

标签: javascript php jquery ajax

我是webdev的初学者,我正在尝试将selectedCategories数组发布到名为'searchMatthew.php'的PHP文件中,但我似乎无法使用它。 JS文件也在searchMatthew.php文件中运行。我将不胜感激任何帮助!感谢。

PHP:

 <?php 
    $searchWord = "";
    if(isset($_POST['selectedCategories'])){
        echo "SUCCESSFUL";
    }
    if(isset($_POST['companies'])){

    }
    if(isset($_POST['word'])){
        $searchWord = $_POST['word'];
        echo $searchWord;
    }


    ?>

jQuery的:

var selectedCompanies = new Array;
var selectedCategories = new Array;

$("input:checkbox.categories").change(function () {
    selectedCategories = new Array;
    $('input.categories:checked').each(function () {
        selectedCategories.push($(this).val());
    });
    $.ajax({
        type: "POST",
        data: {
            'selectedCategories': selectedCategories
        },
        url: "searchMatthew.php",
        success: function () {
            alert(selectedCategories);
        }
    });
});

2 个答案:

答案 0 :(得分:0)

success回调函数需要采用响应参数。 data属性描述了您将通过发送到PHP的数据,因此您有一个字符串(键)来引用$ _POST中的数据。

当PHP返回响应时,selectedCategories仍然引用您发送到PHP的数据,而不是PHP返回的数据

来自jQuery's documentation

  

成功类型:Function(PlainObject数据,String textStatus,jqXHR   jqXHR)请求成功时调用的函数。功能   传递三个参数:从服务器返回的数据,   根据dataType参数格式化;一个字符串描述   状态;和jqXHR(在jQuery 1.4.x,XMLHttpRequest中)对象。

您应该像这样编写代码:

$.ajax({
      type: "POST",
      data: {'selectedCategories':selectedCategories},
      url: "searchMatthew.php",
      success: function(data){
         alert(data);
    }
});

答案 1 :(得分:0)

尝试使用ajax发布快捷方式$.post(url[,data][,callback])

您还缺少成功回调的返回变量。所以改变你的成功回调如下:

$.post('searchMatthew.php', {'selectedCategories': selectedCategories}, function(xData, status){
     alert(xData); //should be "SUCCESSFUL"
});