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

时间:2017-07-07 04:47:38

标签: php jquery ajax

我从select选项中获取两个不同的值并使用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");
}

5 个答案:

答案 0 :(得分:0)

您的代码应该是这样的

$(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");
}

答案 1 :(得分:0)

替换现有的ajax函数,如下所示

$(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");
    }
  });
}

答案 2 :(得分:0)

您正在将json正文作为查询字符串传递,并且您声明要使用dataType: "json"

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

相反,你应该这样做:

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

答案 3 :(得分:0)

您正在使用“option =”和“& status =”在数据下发送请求,但您正在通过$ _POST ['opt']和$ _POST ['stat在PHP中读取这些值']实际上应该分别是$ _POST ['选项']和$ _POST ['状态']。 您还需要将数据请求更改为JSON格式,如数据:{option:opt,status:sta},因为您的dataType是JSON

答案 4 :(得分:0)

感谢每一个看起来我只需要更改ajax中的一些代码这是我的新代码,它工作正常 这是我的PHP代码我摆脱if(!$ row)

                mysql_select_db("dts_db",$con);
            $id=$_POST['opt'];

            $status=$_POST['sta'];

            $query="UPDATE projectstable SET projectStatus='".$status."'WHERE id='".$id."'";
            $result=mysql_query($query);if(!$result){    die("My sql query result ".mysql_error());}

其他{

echo json_encode(" success");

}
这是我的ajax

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

});