首页 > 解决方案 > 试图在 jquery 中将 db 结果捕获为 json

问题描述

当用户单击复选框时,我正在尝试使用 jquery 从数据库中获取一些更新的数据。

复选框是这样的:

echo '<input type="checkbox" name="r571" value="1" '. $checked . $disabled .' id="check_kredit" onClick="ds.r571a.value=this.checked ? \''.date('d-m-Y').'\' : \'\';">'; ?>

ajax 是这样的:

$(document).ready(function() {

$("#check_kredit").click(function() {                
      $.ajax({    //create an ajax request to display.php
        type: "GET",
        url: "getkredit.php?k=129",             
        dataType: "json",   //expect json to be returned                
        success: function(response){
            console.log(response);
            //json_data = jQuery.parseJSON(response);
            //alert(response);
            //$("#kreHint").html(response); 
            //console.log("sfsd");
            //console.log(response);
            //alert(response);
        }

    });
});
});

对数据库的调用 (getkredit.php) 是:

header('Content-Type: application/json', true);
$k = intval($_GET['k']);


if (!$con) {
    die('Could not connect: ' . mysql_error($con));
 }



$kid = "SELECT * FROM kunde WHERE id = '".$k."'";
$rkid = mysql_query($kid) or die(mysql_error);

while($row = mysql_fetch_assoc($rkid)) {
    echo json_encode($row);
}
mysql_close($con);

如果我直接在浏览器中运行 php 文件,它会返回:

{
  "id": "129",
  "kundenr": "00000001",
  "hra": "",
  "navn1": "firmanavn",
  "navn2": "",
  "cvr": "142570220805205",
  "adresse1": "Et vejnavn",
  "adresse2": "",
  "postland": null,
  "postnr": "",
  "postby": "Et sted i DK",
  "land": "DK",
  "tlf": "00000000",
  "fax": "00000000",
  "telex": "",
  "www": "",
  "email": "",
  "att": "Hans Nielsen, Gunner Nu Hansen",
  "note": "Faktura skal p\u00e5f\u00f8res f\u00f8lgende: Sagsnr-afdelingsnr-art-evt. valgfri",
  "betal": "Netto kontant, 8 dage",
  "sikker": "Beh\u00f8rig kreditvurdering",
  "kundegruppe": "Entrepren\u00f8r",
  "ansvarlig": "",
  "opret": "2005-01-20 13:07:44",
  "rettet": "2011-08-29 09:59:24",
  "ejer_id": "129",
  "x-factor": "100",
  "kreditmax": "0",
  "kreditbelastning": "0"
}

但是当我通过 ajax 调用运行它时,它会返回 html 代码。

这让我感到困惑,但由于这可能是第二次,我正在使用 ajax,这对我来说都是全新的。那么我做错了什么?

标签: jquerymysql

解决方案


将您的 ajax 调用更新为:

 $(document).ready(function() {

    $("#check_kredit").click(function() {                
          $.ajax({    //create an ajax request to display.php
            type: "GET",
            url: "getkredit.php?k=129",             
            dataType: "json",   
            headers: {         
                       Accept : "application/json; charset=utf-8",         
                       "Content-Type": "application/json; charset=utf-8"  
                     },               
            success: function(response){
                console.log(response);
                //json_data = jQuery.parseJSON(response);
                //alert(response);
                //$("#kreHint").html(response); 
                //console.log("sfsd");
                //console.log(response);
                //alert(response);
            }

        });
    });
    });

推荐阅读