печатать значения массива php с помощью jquery?

#php #javascript #jquery #ajax

#php #javascript #jquery #ajax

Вопрос:

Скрипт jquery является printng " и , почему?

php скрипт:

 <?php
session_start();

include 'classes/datahandle.class.php';

$data = new Datahandle();
$query = "SELECT i.instructionValue FROM INSTRUCTION_INPUT i WHERE i.deviceId = '$_SESSION[deviceId]' AND i.instructionState = '1' ORDER BY inputPortNumber";
$inputResult = $data->selectDataQuery($query);

while ($inRow = mysql_fetch_array($inputResult)){
    $array[] = $inRow[0];
}

header("Content-type: text/plain");
echo json_encode($array);
?>
  

скрипт jquery:

 <script>
$(document).ready(function() {

  var refreshId = setInterval(function() {  
    $.get('response.php', function(data) {
      $.each(data, function(index, value) {
        $('#value' index).html(value).show();
      });
    });
  }, 3000);
  $.ajaxSetup({ cache: false});
});
</script>

HTML:

<tbody><tr style="color: white; font-weight: bold;">
    </tr>
        <tr>
        <td style="text-align: center; color: white; font-weight: bold;" id="value0">[</td>
    </tr>
        <tr>
        <td style="text-align: center; color: white; font-weight: bold;" id="value1">"</td>
    </tr>
        <tr>
        <td style="text-align: center; color: white; font-weight: bold;" id="value2">1</td>
    </tr>
        <tr>
        <td style="text-align: center; color: white; font-weight: bold;" id="value3">1</td>
    </tr>
        <tr>
        <td style="text-align: center; color: white; font-weight: bold;" id="value4">"</td>
    </tr>
        <tr>
        <td style="text-align: center; color: white; font-weight: bold;" id="value5">,</td>
    </tr>
        <tr>
        <td style="text-align: center; color: white; font-weight: bold;" id="value6">"</td>
    </tr>
    </tbody>
  

Комментарии:

1. Почему jquery неправильно печатает значения из массива php в каждом html-идентификаторе? На данный момент выполняется печать » и», и значения int разделены…

2. @FCC-PT: Можете ли вы явно показать, что вы получили и чего ожидали?

3. Хорошо, может быть, html немного помогает… Я запрашиваю некоторые данные из своей базы данных и обновляю таблицу с id = «value0» …. id = «value100» и т. Д

4. Пожалуйста, добавьте к вопросу свой текущий вывод в формате json.

5. @FCC-PT: Я полагаю, это воспроизводит вашу проблему? jsfiddle.net/XQ7cX

Ответ №1:

Вам нужно использовать $.getJSON , который анализирует объект JSON, полученный из запроса AJAX, вместо того, чтобы пытаться обработать необработанную строку:

 $.getJSON('response.php', function(data) {
  

Также, как предложил @Rocket, вам следует изменить header("Content-type: text/plain"); на header("Content-type: application/json"); в response.php .

Вот версия без синтаксического анализа JSON, которая воспроизводит вашу проблему: http://jsfiddle.net/XQ7cX /.

Вот версия с синтаксическим анализом JSON, которая отображается правильно: http://jsfiddle.net/XQ7cX/1 /

Комментарии:

1. Вам также следует изменить header("Content-type: text/plain"); на header("Content-type: application/json");