php - jQuery 从 ajax 响应中读取数组

标签 php jquery ajax json

这是非常基本的,但我现在已经被困了一个多小时,因为我找不到确切的例子。感谢您提供的任何链接。

我在 php 中构建 JSON,如下所示:

return json_encode(['error' => 'customer number not found']);

它返回一个如下所示的基本数组(来自检查):

{error: 'customer number not found'}

我通过 jQuery 进行了 Ajax/getJSON 调用:

   $.getJSON( url, function( response ) {

        $.each(response[0], function(key, value) {

            // Check response for errors
            if (key == "error") {

                // display message
                $(message_area).innerHTML = value;

                // Show the error message
                $(message_area).show();

            };

        });

    });

我只想检查第一个值,然后显示第二个值并显示容器。上面的代码给了我

Uncaught TypeError: Cannot read property 'length' of undefined

最佳答案

代替使用 $.each,执行相同操作的更好方法(考虑到当前场景)是检查 response.error 是否存在。 :)

将您的代码更改为类似

 $.getJSON( url, function( response ) {
    if (response.error){
        $(message_area).html(response.error);
        // Show the error message
        $(message_area).show();
    } else{
        // No error, do your success stuff
    }
 });

附录:

首先,您从 PHP 获得的响应不是一个数组。它是一个物体。与循环访问对象的键和值相比,检查对象中的现有属性是更明智、更直观的处理方式。

第二 - 你的 $(message_area) 是一个 jQuery 对象。您不能按照您设置的方式直接为 jQuery 对象设置innerHTML。假设 message_area 仅选择一个元素,执行此操作的方法是 $(message_area)[0].innerHTML = "你的值(value)";

但是如果您使用 jQuery,那么遵循 jQuery 的精神更为明智,所以您实际上应该做的是

$(message_area).html('您的值(value)');

希望有帮助。 :)

关于php - jQuery 从 ajax 响应中读取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32133652/

相关文章:

ajax - 使用 Coldfusion 的 CFFILE 标签监控来自 FFMpeg 的进度日志

PHP脚本显示图像BLOB执行了两次?

php - Mysql 内连接在 Mysql 5.1 上不起作用

php - 如何为 php exec 或 shell_exec 设置 $PATH

javascript - Adobe Edge 问题 IE 动画未加载未定义的阶段错误

javascript - 对 XMLHTTPRequest 的回退支持

javascript - 使用 WordPress 将 JSON 对象发送到 jQuery Tabs 的 AJAX

javascript - 从元素中删除特定的 jQuery 单击事件

jquery - 如何实现 jquery.sound.js?

javascript - 读取从mysql接收到的JSON数据