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

时间:2014-03-14 13:46:46

标签: php jquery

我有一个不同选项的下拉列表。当您选择一个选项时,选项内的文本显示在下拉菜单下方。我用这段代码做到了这一点:

  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'];
?>

但没有出现。任何人吗?

1 个答案:

答案 0 :(得分:0)

您似乎没有任何问题将值暴露给PHP,所有问题似乎都发生在该阶段之后。

  1. success需要是函数,它对HTTP响应数据执行某些操作,而不是空字符串。
  2. 如果您告诉jQuery忽略服务器所说的数据并将其视为JSON,那么请确保将JSON发回
  3. echo数组可能不太有用。
  4. e.g。

    $.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']);
    ?>