显示PHP json数据到jquery ajax

show php json data into jquery ajax

本文关键字:jquery ajax 数据 PHP json 显示      更新时间:2023-09-26

我对这个话题很陌生。Json结果如下所示:

{
    "span": " 1",
    "numcard": "12",
    "chan": " Yes",        
    "idle": "Yes",
    "level": "idle ",
    "call": "No ",
    "name": ""
}

我如何使用ajax显示所有的json数据。我目前有这个代码写起来,虽然我得到的数据不太工作的方式,我想要的。

$("a[name=cardNo1]").click(function() {
    var cardNo1 = $(this).attr("id");
    $("a[name=cardNo1]").each(function() {
        cardNo1 += "";
    });
    var dataString = "action=spanchan" + "&cardNo=" + cardNo1;
    $.ajax({
        type: "POST",
        url: "dahdiprocess.php?",
        data: dataString,
        dataType: 'json',
        success: function(data, status) {
            if (data != "") {
                $.each(data, function(key, val) {
                    $("#span").val(val.span);
                    $("#numcard").val(val.numcard);
                    $("#chan").val(val.chan);
                    $("#idle").val(val.idle);
                    $("#level").val(val.level);
                    $("#call").val(val.call);
                    $("#name").val(val.name);
                });
            }
        }
    });
});
<input id="span" name="span" value="" />
<input id="numcard" name="numcard" value="" />
<input id="chan" name="chan" value="" />
<input id="idle" name="idle" value="" />
<input id="level" name="level" value="" />
<input id="call" name="call" value="" />
<input id="name" name="name" value="" />

当我尝试警报时,例如alert(val.span),它一直显示未定义。有没有人在这个主题方面有经验,看看我的代码是否有问题?任何帮助都将非常感激。

您将返回一组值,因此在成功处理程序中不需要each。试试这个:

success: function(data, status) {
    if (data != "") {
        $("#span").val(data.span);
        $("#numcard").val(data.numcard);
        $("#chan").val(data.chan);
        $("#idle").val(data.idle);
        $("#level").val(data.level);
        $("#call").val(data.call);
        $("#name").val(data.name);
    }
}

理论上,您不应该需要data != ""检查,因为当请求的结果是200 OK时,您的服务器端代码不应该被允许返回一个空响应。

试试这个:

$("a[name=cardNo1]").click(function() {
    var cardNo1 = $(this).attr("id");
    $("a[name=cardNo1]").each(function() {
        cardNo1 += "";
    });
    var dataString = "action=spanchan" + "&cardNo=" + cardNo1;
    $.ajax({
        type: "POST",
        url: "dahdiprocess.php?",
        data: dataString,
        dataType: 'json',
        success: function(data, status) {
            if (data != "") {
                    $("#span").val(data.span);
                    $("#numcard").val(data.numcard);
                    $("#chan").val(data.chan);
                    $("#idle").val(data.idle);
                    $("#level").val(data.level);
                    $("#call").val(data.call);
                    $("#name").val(data.name);
            }
        }
    });
});

应该是

            if (data != "") {
                    $("#span").val(data.span);
                    $("#numcard").val(data.numcard);
                    $("#chan").val(data.chan);
                    $("#idle").val(data.idle);
                    $("#level").val(data.level);
                    $("#call").val(data.call);
                    $("#name").val(data.name);
            }