Ajax无法通过POST

问题描述 投票:1回答:3

我有一个表单,我需要将数据发布到compute.php文件。我必须传递两个选择字段的内容,分别为select_1和select_2。我的Fiire按钮有一个onclick ='go()'调用。

我的脚本代码如下:

function go() {
var sel_1 = document.getElementById('select_1').value;
var sel_2 = document.getElementById('select_2').value;
$.ajax({
    type: "POST",
    url: "compute.php",
    data: "select_1=" + sel_1 + "&select_2=" + sel_2,
    dataType: "text",
    success: function(data,status)
      /* ------------ for debug I have an alert with a response ---- */
      {
        alert("passed data are: " + data + "\nStatus: " + status);
      },
    error: function(data,status)
      {
        alert("passed data are: " + data + "\nStatus: " + status);
      }
    });
}

在php端,我的compute.php文件具有如下代码:

$selection_1 = $_POST["select_1"];
$selection_2 = $_POST["select_2"];

$sqladd = "INSERT INTO table SET column_1 = '$selection_1', column_2 = '$selection_2';";
if (mysqli_query($conn, $sqladd)) {
   $resultadd= mysqli_query($conn, $sqladd);
   // ------- then for debug purpose
   echo "inserted row with col_1 --->" . $selection_1 . "<--- and col_2 --->" . $selection_2;
} else {
   // ------- either, still for debug purpose
   echo "not inserted. ";
   echo "Error: " . mysqli_error($conn);
}

现在,警告框显示js正确获取了两个选择字段的值,并且我也返回了成功状态,但是我来自compute.php的调试回显显示了selection_1和selection_2的空值],和表行已插入,但在插入的行中表列为空。 Apache日志显示两个注意事项:PHP注意:未定义索引:compute.php中的select_1PHP注意:未定义索引:compute.php中的select_2。因此,PHP不接收两个POST值。我在做什么错?

我有一个表单,我需要将数据发布到compute.php文件。我必须传递两个选择字段的内容,分别为select_1和select_2。我的Fiire按钮有一个onclick ='go()'调用。我的脚本代码是...

javascript php ajax post
3个回答
0
投票

尝试将go函数修改为这样:


0
投票
function go() {
var sel_1 = $('#select_1').val();
var sel_2 = $('#select_2').val();
$.post("compute.php", {
    select_1 : sel_1,
    select_2 : sel_2
    }, function (answ) {
    console.log(answ);
  });
}

0
投票

用go函数的ajax修改数据对象数据:{“ select_1”:sel_1,“ select_2”:sel_2}

© www.soinside.com 2019 - 2024. All rights reserved.