Я новичок в динамические данные и пытаетсяКак получить мои данные обратно
- чтения данных из базы данных MySQL с помощью PHP
- поворота этих данные в формат JSON
- выборку данных с помощью JavaScript (jQuery)
- Включая его в мою страницу.
Насколько я могу видеть, 1) и 2) работают нормально, 3) кажется видом работы и 4) находится там, где он ломается.
Я создал базу данных и таблицу, запрос & эхо данных как так (api.php)
<?php
include 'db.php';
$con = new mysqli($host,$user,$pass,$databaseName);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT * FROM $tableName";
$myArray = array();
if ($result = $con->query($query)) {
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
array_push($myArray, $tempArray);
}
echo json_encode($myArray);
}
$result->close();
$con->close();
?>
Теперь я получаю его через JavaScript ...
jQuery(function($) {
$.ajax({
url: 'php/api.php',
data: "json",
dataType: "",
success: function(data) {
var r = new Array(), j = -1;
for (var key=0, size=data.length; key<size; key++){
r[++j] ="<tr><td>";
r[++j] = data[key][0];
r[++j] = "</td><td>";
r[++j] = data[key][1];
r[++j] = "</td><td>";
r[++j] = data[key][2];
r[++j] = "</td></tr>";
}
var joined = r.join('');
console.log(joined);
$('#maintable tbody').html(joined);
}
});
});
... и выбросить его в элемент tbody моего стола.
Результат абсолютно не то, что я ожидал:
Смотрите http://i.imgur.com/hRNrmdC.jpg (извините за частично немецкий интерфейс)
Ответ на запрос GET действует JSON, по крайней мере, в теории (проверяется http://jsonlint.com/) , но для меня кажется, что данные обрабатываются как строка и разбиваются на массив символов (каждый символ «ключ» в данных []), поэтому «данные [ключ] [1] ничего не возвращает.
var json = JSON.stringify(eval("(" + data + ")"));
и продолжение с json [key] [0] di dn't help ...
Теперь я удивляюсь, почему и особенно, что пошло не так и как исправлено.
Почему вы используете переменную 'j'? Вы должны использовать 'key'. Это не часть ответа, но нет необходимости иметь две переменные. –
Я думаю, что у вас есть варианты, немного запутанные, передавая только «json» в качестве данных и пустой dataType? – adeneo
Почему в мире вы делаете 'JSON.stringify (eval (" (+) +)))? Было ли «данных» недостаточно? –