JSON возвращается как неопределенный - PullRequest
1 голос
/ 12 апреля 2011

Здравствуйте. У меня есть запрос ajax, который отправляет форму, отправляет и отправляет электронное письмо. Если электронное письмо отправлено успешно, я кодирую массив PHP, который выглядит следующим образом:

$success = array("state" => "Email Sent");

Затем я проверяю состояние data в своем запросе ajax, чтобы увидеть, соответствует ли state «Отправлено по электронной почте», однако, когда я alert(data) получаю неопределенное значение, что я делаю неправильно?Ниже мой javascript,

$.ajax({
                    url: "<?php echo base_url(); ?>home/callback",
                    data: $("#callback").serialize(),
                    type: "POST",
                    dataType: "JSON",
                    success: function(data){
                        $("#fancybox-content div").html(data);
                        alert(data.state);
                    }
                });

Ответы [ 4 ]

0 голосов
/ 12 апреля 2011

использование

json_decode($success, true); 

Когда TRUE, возвращаемые объекты будут преобразованы в ассоциативные массивы.

0 голосов
/ 12 апреля 2011

Если вы получаете предупреждение, то вы уверены, что ваш JSON действителен? Вы можете вставить это в свой вопрос. Вы можете проверить это здесь онлайн на JsonLint .

0 голосов
/ 12 апреля 2011

как вы возвращаете массив $succes?
Вы должны echo массив таким образом, чтобы сохранить его формат и было бы понятно для javascript (не print_r или var_dump):

echo json_decode($success);

, которая будет возвращать строку json, представляющую ваш массив php, который js автоматически преобразует в объект.
Надеюсь, это поможет.

0 голосов
/ 12 апреля 2011

Попробуйте получить значение html div 'fancybox-content'. $ ( '# FancyBox-контента') HTML ();.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...