php - AJAX 请求返回 JSON,不工作

标签 php javascript ajax json

我可能误解了 JSON,但为什么这段代码不起作用?

HTML

<html>
    <head>
        <title>Test</title>
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/main.js"></script>
    </head>
    <body>
        <div class="response">
            Name: <span class="name"></span><br>
            Password: <span class="password"></span><br>
    </body>
</html>

MAIN.JS

$(document).ready(function(){

    $.ajax({
        type: "POST",
        url: 'action.php',
        dataType: 'json',
        success: function(msg){
            $.each(msg, function(index, value){
                if (index == 'name') { $('.name').html(value.name); }
                if (index == 'password') { $('.password').html(value.password); }
            });
        },

        error: function(){
            $('.response').html("An error occurred");
        }
    });

});

ACTION.PHP

<?php

$array = array(
    0 => array(
        'name' => "Charlie",
        'password' => "none"
    ),
    1 => array(
        'name' => "Tree",
        'password' => "tree"
    )
);

echo json_encode($array);

?>

最佳答案

在您的 javascript 中,index 将是“0”和“1”,而不是“name”和“value”:

    success: function(msg){
        $.each(msg, function(index, value){
            $('.name').html(value.name);
            $('.password').html(value.password);
        });
    },

当然,按照现在的情况,您将设置两次字段,只有最后一次会“坚持”

如果您只想使用“查理”结果,那么

    success: function(msg){
        $('.name').html(msg[0].name);
        $('.password').html(msg[0].password);
    },

对于“树”,只需将数组下标更改为1

关于php - AJAX 请求返回 JSON,不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5067889/

相关文章:

php - Jquery重定向到另一个页面

PHP 文件上传.. 检索 URL

来自sql结果的Php数组

javascript - NetSuite:TypeError record.viewCurrentLineItemSubrecord 不是函数?

javascript - 使用 transition-delay 选项 (css) 和 JS 使 div 移动

javascript - jquery ajax跨站

php - Magento 获取属性

javascript - 如何将 Phaser 3 游戏及其 Assets 扩展到智能手机和平板电脑上?

javascript - 提交 AJAX 表单旧样式

jquery - 是什么阻止我使用 $.ajax 加载另一个域的 html?