选择2个不同的选项值并使用ajax将数据发送到php

选择2个不同的选项值并使用ajax将数据发送到php,php,jquery,ajax,Php,Jquery,Ajax,我从selectoptions中获取两个不同的值,并使用AJAX发送,但PHP没有响应请求 这是我的jQuery代码: $(document).ready(function() { $("#updateStatus").change(function() { var opt = $("#updateStatus").val(); $("#updateStatus1").change(function() { var sta = $("#updateStatus1

我从
select
options中获取两个不同的值,并使用AJAX发送,但PHP没有响应请求

这是我的jQuery代码:

$(document).ready(function() {
  $("#updateStatus").change(function() {
    var opt = $("#updateStatus").val();

    $("#updateStatus1").change(function() {
      var sta = $("#updateStatus1").val();

      $.ajax({
        url: 'updatecode.php',
        type: 'POST',
        data: "option=" + opt + "&status=" + sta,
        dataType: 'json',
        success: function(data) {
          alert(data + "hello");
        }
      });
    });
  });
});
这是我的PHP代码:

$id = $_POST['opt'];
$status = $_POST['sta'];
$query = "UPDATE projectstable SET projectStatus='".$status."'WHERE id='".$id."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

if (!$row) {
  echo json_encode("fail");
} else {
  echo json_encode("sucess");
}

您的代码应该是这样的

$(document).ready(function () {
                $("#updateStatus,#updateStatus1").change(function () {

                    var opt = $("#updateStatus").val();
                    var sta = $("#updateStatus1").val();

                    $.ajax({
                        url: 'updatecode.php',
                        type: 'POST',
                        data: {option:opt,status:sta},
                        dataType: 'json',
                        success: function (data) {
                            alert(data + "hello");
                        }
                    });
                });
            })
php代码应该是这样的

$id = $_POST['option'];
$status = $_POST['status'];
$query = "UPDATE projectstable SET projectStatus='".$status."'WHERE id='".$id."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

if (!$row) {
   echo json_encode("fail");
 } else {
 echo json_encode("sucess");
}
$(document).ready(function() {
  var opt = '';
  var sta = '';
  $("#updateStatus").change(function() {
     opt = $("#updateStatus").val();
  });

  $("#updateStatus1").change(function() {
     sta = $("#updateStatus1").val();
     callAjax(opt,sta);
  });
});

function callAjax(opt,sta) {
  $.ajax({
    url: 'updatecode.php',
    type: 'POST',
    data: "opt=" + opt + "&sta=" + sta,
    dataType: 'json',
    success: function(data) {
      alert(data + "hello");
    }
  });
}

像这样替换现有的ajax函数

$id = $_POST['option'];
$status = $_POST['status'];
$query = "UPDATE projectstable SET projectStatus='".$status."'WHERE id='".$id."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

if (!$row) {
   echo json_encode("fail");
 } else {
 echo json_encode("sucess");
}
$(document).ready(function() {
  var opt = '';
  var sta = '';
  $("#updateStatus").change(function() {
     opt = $("#updateStatus").val();
  });

  $("#updateStatus1").change(function() {
     sta = $("#updateStatus1").val();
     callAjax(opt,sta);
  });
});

function callAjax(opt,sta) {
  $.ajax({
    url: 'updatecode.php',
    type: 'POST',
    data: "opt=" + opt + "&sta=" + sta,
    dataType: 'json',
    success: function(data) {
      alert(data + "hello");
    }
  });
}

您将json正文作为查询字符串传递,并声明使用
数据类型:“json”

相反,你应该这样做:

$.ajax({
        url: 'updatecode.php',
        type: 'POST',
        data: {"option": opt, "status": sta},
        dataType: 'json',
        success: function(data) {
          alert(data + "hello");
        }
});

您使用“option=”和“&status=”在数据下发送请求,但您在PHP中通过$\u POST['opt']和$\u POST['stat']读取这些值,这两个值实际上应该分别是$\u POST['option']和$\u POST['status']。
此外,您还需要将数据请求更改为JSON格式,如data:{option:opt,status:sta},因为您的数据类型是JSON

谢谢大家,看起来我刚刚在ajax中更改了一些代码。这是我的新代码,运行良好 这是我的PHP代码,我去掉了if(!$row)

否则{

echo json_编码(“成功”)

}
这是我的ajax

$.ajax({
url: 'updatecode.php',
type: 'POST',
data:  {opt:opt,sta:sta},
dataType: 'json',
success: function(data) {
  alert(data + "hello");
}

}))

到底是什么不起作用?您是否尝试过
console.log(opt)
console.log(sta)
。不,我会试试看。console没有显示任何错误ajax向php发送数据,但没有收到任何错误。您需要更改此$id=$\u POST['option'$状态=$_POST['status'];检查下面的答案..尝试通过在ajax请求中添加error:function(xhr,textStatus,errorwhold){console.log(errorwhold);}来获取错误,成功后函数运行正常,但必须更改“data:{opt:opt,sta:sta}”@Parvez现在检查我的答案,我只是编辑它。如果对你有帮助,请接受。。这对我也有帮助。:)