Использование jQuery для получения данных объекта JSON

0

Я новичок в jQuery и JSON. У меня следующий PHP-код (getData.php) выполняет запрос из базы данных:

<?php
     header('Content-Type: application/json');
     ....
     // some code here
     ....
     $my_arr=array();
     // fectching data into array
     while($info = mysqli_fetch_array($result))
     {
       // convert to integer value if there is a bug after passing json_encode
       $rev=intval($info['bIRevNum']);
       $name=$info['bIName'];
       echo "<tr>";
       echo "<td>" . $info['bName'] . "</td>";
       echo "<td>" . $info['bRevNum'] . "</td>";
       echo "<td>" . $info['bIName'] . "</td>";
       echo "<td>" . $info['bIRevNum'] . "</td>";
       $my_arr[]=array('br'=>$name,'rev'=>$rev);
       echo "<td>" . $info['pName'] . "</td>";
       echo "<td>" . $info['pRevNum'] . "</td>";
       echo "</tr>";
     }

     // json encode
     echo json_encode($my_arr);
?>

После использования echo 'json_encode' здесь я могу увидеть объект JSON в этом формате [{"br":"itemsb1","rev":37},{"br":"itemb2","rev":45}] on моя страница.

Теперь я хочу получить доступ к целому элементу rev элемента объекта (37 и 45) для будущего использования jQuery в другом PHP файле, назовем его index.php и приведенным ниже скриптом

<html>
.....
<script>
   $(document).ready(function(){
       $("button").click(function(){
           $.getJSON("getData.php", function(obj) {
             $.each(obj, function(key, value){
                    $("#div1").append("<li>"+value.rev+"</li>");
         });
       });
   });

    });
</script>   
...
// test here
<!---jquery--->
<div id="div1"><h2>CHANGE >>>> ....!!!!</h2></div>
<button>Calling from different PHP file</button>
</html>

Если это правильно, когда я нажимаю кнопку "Вызов из другого файла PHP", она должна отображать значение объекта JSON как 37, 45.

Я пробовал много способов, но на моей странице ничего не отображается.

Пожалуйста, помогите мне с этим!

  • 0
    Используйте консоль разработчика для отслеживания вызова AJAX. Вы поддерживаете HTML ( "<td>" . $info['bName'] . "</td>" и т. Д.) В дополнение к JSON?
  • 1
    можно отправить только строку json, вы также отправляете html, это не будет проверяться и вызовет parserror
Показать ещё 3 комментария
Теги:
web

2 ответа

1

Похоже, ваша проблема заключается в том, что вы эхо и html, а также JSON. попробуйте удалить "эхо" из этих строк

echo "<tr>";
echo "<td>" . $info['bName'] . "</td>";
echo "<td>" . $info['bRevNum'] . "</td>";
echo "<td>" . $info['bIName'] . "</td>";
echo "<td>" . $info['bIRevNum'] . "</td>";
echo "<td>" . $info['pName'] . "</td>";
echo "<td>" . $info['pRevNum'] . "</td>";
echo "</tr>";

НЕ удаляйте эту строку:

$my_arr[]=array('br'=>$name,'rev'=>$rev);

Также убедитесь, что ваш javascript правильно синтаксис

$("button").click(function(){
   $.getJSON("getData.php", function(obj) {
        $.each(obj, function(key, value) {
            $("#div1").append("<li>"+value.rev+"</li>");
        });
    });
});
  • 0
    Я удалил эти строки, но это все еще не работает
  • 0
    на моей странице отображается только объект json [{"br": "itemsb1", "rev": 37}, {"br": "itemb2", "rev": 45}]
Показать ещё 2 комментария
0

Убедитесь, что единственное содержимое, возвращаемое из getData.php, является форматированным JSON; в противном случае он не будет правильно разбираться. Если вы непосредственно заходите в getData.php в своем браузере, вы должны видеть только контент JSON и ничего больше (включая ошибки, предупреждения и т.д.). Ваш jQuery выглядит хорошо; поэтому проблема должна быть в том, что содержимое возвращается из PHP-скрипта. Я просто взломал тривиальный тестовый пример, используя этот PHP:

<?php
    header('Content-type: application/json');
    $my_arr[]=array('br'=>'something','rev'=>'2.0.5');
    echo json_encode($my_arr);
?>

Используя точный HTML, который вы предоставили, работает так, как ожидалось.

  • 0
    прохладно ! Я знаю, что происходит сейчас, содержимое, возвращаемое из моего PHP-скрипта, неверно, потому что использование AJAX для взаимодействия с моей базой данных при выполнении запроса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню