У меня есть небольшая путаница, почему следующее не работает.
get.php
<?php $username="root"; $password="root"; $database="testing"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $name= $_GET['name']; $query="SELECT * FROM tableone "; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); $array = array(); $i=0; while ($i < $num) { $first=mysql_result($result,$i,"firstname"); $last=mysql_result($result,$i,"lastname"); $date=mysql_result($result,$i,"date"); $ID=mysql_result($result,$i,"id"); $array[] = $first; $i++; } echo json_encode($array); ?>
JQuery
var arr = new Array(); $.get("get.php", function(data){ arr = data; alert(arr); }, "json");
Когда я запускаю следующее, я получаю список имен, которые выглядят так:
["James","Lydia","John"]
Но когда я пытаюсь выделить запись, такую как arr [2], я даю только «J», почему это так, что элементы arnt одиночные записи, как я ожидал бы?
Может кто-нибудь протянуть руку?
Благодаря!
Обновить
$.get("get.php", function(data){ arr = $.parseJSON(data); alert(arr); }, "json");
похоже, не возвращает результаты?
data
содержат строку JSON, поэтому arr[2]
будет третьим символом в строке. Вам нужно использовать $.parseJSON(data)
.
Ваш PHP утверждает, что JSON – это HTML. Вам нужно явно сказать, что JSON должен заставить jQuery обрабатывать его как автоматически.
header("Content-type: application/json");
Отправьте заголовок json в php через header('Content-type: application/json');
поэтому jQuery должен автоматически декодировать ваши json-данные.
вы не можете передать значение данных в массив.
$.get("get.php", function(data){ alert(data[2]); }, "json");