通过$.ajax将javascript值传递给PHP


Pass javascript value to PHP by $.ajax

我有一个不同选项的下拉菜单。当您选择一个选项时,该选项内的文本显示在下拉菜单下方。我使用下面的代码:

  var stadsnat_ar = new Array();
    $(".stadsnat_options").change(function() {
            stadsnat_ar.push($(".stadsnat_options option:selected").val()); //This value should be used in PHP to get correct data from MySQL
            var stadsnat = stadsnat = $(".stadsnat_options option:selected").text();    //show the text
            $('#teststat').show().append('<br>' + stadsnat);
    });

整个想法是,你可以选择多个选项,然后点击提交,用你选择的选项在MySQL中进行搜索。如您所见,我用您选择的选项的值赋值了一个数组。如何使数组中的值对PHP可见?

我试过了:

$.ajax({
    type: "POST",
    url: 'searchengine.php',
    data: {stad_value: stadsnat_ar},
    success: "",
    dataType: "json"
});

然后我这样做:

<?php
echo $_POST['stad_value'];
?>

但是什么也没有出现。有人知道吗?

向PHP公开这些值似乎没有任何问题,所有的问题似乎都是在这个阶段之后出现的。

  1. success需要是一个函数做一些HTTP响应数据,而不是一个空字符串。
  2. 如果你告诉jQuery忽略服务器说的数据是什么,把它当作JSON,然后确保你发送JSON返回
  3. echo数组可能不是很有用。

$.ajax({
    type: "POST",
    url: 'searchengine.php',
    data: {stad_value: stadsnat_ar},
    success: doSomething,
    dataType: "json"
});
function doSomething(data) {
    $('body').text(data.join("-"));
}

<?php
header("Content-Type: application/json");
echo json_encode($_POST['stad_value']);
?>