AJAX-запрос, возвращающий JSON, не работает - PullRequest
1 голос
/ 21 февраля 2011

Я, вероятно, неправильно понимаю 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);

?>

Ответы [ 2 ]

3 голосов
/ 21 февраля 2011

В вашем 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

0 голосов
/ 21 февраля 2011

должно быть

if (index == 'name') { $('.name').html(value); }
if (index == 'password') { $('.password').html(value); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...