【问题标题】:Ajax post not passing data to php?Ajax 发布没有将数据传递给 php?
【发布时间】:2017-04-18 03:43:44
【问题描述】:

所以我在使用 ajax post 向 php 传递数据时遇到问题
这是我的jQuery:

    $('#kodeobat').on('change',function(){
        var kodeobat = $(this).val();

            if (kodeobat = ""){
            $("#hargaobat").val("");
          } else {
                $.ajax({
                    type: "POST",
                    data: { 'kodeobat': kodeobat },
                    dataType: "json",
                    url: "getdata.php",
                    success: function(json) {
                        $("#hargaobat").val(json["hargaobat"]);
                    }
                });
          }
        });

这里是php文件:

$kodeobat = $_POST['kodeobat'];
$stmt = $db_con->prepare("SELECT kodeobat, hargaobat FROM Obat WHERE kodeobat='".$kodeobat."'");
$stmt->execute();

while($row=$stmt->fetchAll(PDO::FETCH_ASSOC))
{
 if($kodeobat == $row['kodeobat']){
  echo json_encode($row);
 }
}

它的结果是:注意:未定义的索引:第 4 行 .../getdata.php 中的 kodeobat,即这一行 $kodeobat = $_POST['kodeobat'];

代码有问题吗?谢谢你:)

【问题讨论】:

    标签: php jquery ajax


    【解决方案1】:
    $('#kodeobat').on('change',function(){
        var kodeobat = $(this).val();
    
            if (kodeobat == ""){
            $("#hargaobat").val("");
          } else {
                $.ajax({
                    type: "POST",
                    data: { 'kodeobat': kodeobat },
                    dataType: "json",
                    url: "getdata.php",
                    success: function(json) {
                        $("#hargaobat").val(json["hargaobat"]);
                    }
                });
          }
        });
    

    注意 if (kodeobat == "")

    【讨论】:

    • 天哪,我怎么能错过那个>。
    • 相信我,即使我错过了很多次 :)
    【解决方案2】:

    尝试使用 PHP 的 header() 函数将 JSON 作为 JSON 发送: header("Content-Type: application/json", true);

    look at this

    【讨论】:

      【解决方案3】:

      如果你不知道你会得到什么类型的值,这里是一个尝试..

        $kodeobat = $_POST['kodeobat'];
        if(empty($kodeobat)) {
          echo("Value is empty");
        } else if(is_array($kodeobat)) {
          $i = count($kodeobat);     //If the value is array iterate it
          for($j = 0; $j < $i; $j++) {
            echo($kodeobat[$i] . " ");
          }
        } else if(is_object($kodeobat)){
          $json = json_decode($_POST,true);  //if it is a json value decode it
          $kodeobat_new = $json['kodeobat'];
        } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-03
        • 2017-11-14
        • 1970-01-01
        相关资源
        最近更新 更多