无法使用jQuery AJAX发送多个数据参数

时间:2018-12-05 13:39:09

标签: javascript php ajax

我正在尝试使用Ajax将值发送到其他页面

但是我无法接收这些值,我不知道我哪里错了

这是我的代码

<script type="text/javascript">
function get_more_info() { // Call to ajax function
var fval = document.getElementById('get_usecompny').value;
var dataString1 = "fval="+fval;
alert(fval);
var sval = document.getElementById('country').value;
var dataString2 = "sval="+sval;
alert(sval);

$.ajax({
    type: "POST",
    url: "getmoreinfo.php", // Name of the php files
    data: "{'data1':'" + dataString1+ "', 'data2':'" + dataString2+ "'}",
    success: function(html)
    {
        $("#get_more_info_dt").html(html);
    }
  });
 }
</script>

在警报中,我获得了这些值,但是在“ getmoreinfo.php”页面中,我没有收到任何值

这是我的“ getmoreinfo.php”页面代码

    if ($_POST) {
      $country = $_POST['fval'];
      $country1 = $_POST['sval'];

      echo  $country1;
      echo "<br>";
      echo  $country;   
      }

请让我知道我哪里错了!对不起,英语不好

3 个答案:

答案 0 :(得分:3)

您传递的参数名称与尝试读取它们的名称不同。

您的data:参数可以更简单地完成,如下所示

<script type="text/javascript">
function get_more_info() { // Call to ajax function
    var fval = document.getElementById('get_usecompny').value;
    var sval = document.getElementById('country').value;

    $.ajax({
        type: "POST",
        url: "getmoreinfo.php", // Name of the php files
        data: {fval: fval, sval: sval},
        success: function(html)
        {
            $("#get_more_info_dt").html(html);
        }
      });
}
</script>

或者也切出中间变量,并使用jquery方法从具有这样的id的元素中获取数据。

<script type="text/javascript">
function get_more_info() { // Call to ajax function


    $.ajax({
        type: "POST",
        url: "getmoreinfo.php", // Name of the php files
        data: { fval: $("#get_usecompny").val(), 
                sval: $("#country").val()
              },
        success: function(html)
        {
            $("#get_more_info_dt").html(html);
        }
      });
}
</script>

答案 1 :(得分:0)

无需创建“ dataString”变量。您可以将数据显示为对象:

$.ajax({
    ...
    data: {
        'fval': fval,
        'sval': sval
    },
    ...
});

然后在您的PHP中,您可以像这样访问数据:

$country = $_POST['fval'];
$country1 = $_POST['sval'];

答案 2 :(得分:0)

JQuery ajax对象的属性“ data”需要是一个简单的对象数据。 jQuery将根据请求自动将对象解析为参数:

$.ajax({
    type: "POST",
    url: "getmoreinfo.php",
    data: {
        fval: document.getElementById('get_usecompny').value,
        sval: document.getElementById('country').value
    },
    success: function(html) {
        $("#get_more_info_dt").html(html);
    }
});