选择框更改时不会调用AJAX

时间:2018-02-20 11:37:56

标签: php jquery

当选择框发生变化时,我正在使用jquery来调用PHP脚本。我能够获得更改的选择项的ID,但是我没有得到PHP脚本的输出。 Javascript是

function initagents() {
  $('select.agent').on('change', function() {
    var id = $(this).attr("id");
    console.log(id);
    var data = { id: id };
    $.ajax({
      type: "POST",
      dataType: "json",
      url: "updateagent.php",
      data: data 
    }).done(function(msg) {
      console.log(msg);
    });
  });
}

和PHP是

print_r ( $_POST);

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

请使用

echo json_encode($_POST['id']);

而不是

print_r($_POST);

答案 1 :(得分:0)

您在onChange内放置了选择框的function initagents()事件时出错了。

修正代码:

$('select.agent').on('change', function() {
    var id = $(this).attr("id");
    console.log(id);
    var data = {
        id: id
    };

    $.ajax({
        type: "POST",
        dataType: "json",
        url: "updateagent.php",
        data: data
    }).done(function(msg) {
        console.log(msg);
    });
});

答案 2 :(得分:0)

尝试使用以下代码:

function getID(val) {
  alert(val);
  $.ajax({
    type: 'POST',
    url: 'post.php',
    data: {
      id: val
    },
    success: function(data) {
      alert(data);
    }
  });
}
<select name="pks" onchange='getID(this.value);'>
  <option value="1">Option1</option>
  <option value="2">Option2</option>
</select>

答案 3 :(得分:0)

似乎你的代码是正确的,它应该将数据发送到php文件。但我也看到,你没有将选定的值发送到PHP脚本。您正在发布所选元素ID。

您是否在子文件夹中尝试此操作?确保javascript中的php文件路径是正确的。如果您可以尝试完整路径,那就更好了。例如

url: "http://localhost/myproject/updateagent.php",