#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");