Reputation: 992
I have a strange problem..
When i try to access my json code with the corresponding number [0], [1] etc.. I just get the first character of the object.
First of my code:
test2.php
if(isset($_POST['getCustomersArray'])){
$runQuery = mysql_query($Query) or
die("SQL: $Query)<br />".mysql_error());
$numrows = mysql_num_rows($runQuery);
$array = array(array());
for($i = 0;$i <= 2; $i++){
$row = mysql_fetch_array($runQuery);
$array[$i]['namn'] = $row['fornamn'];
}
print json_encode($array);
}
scriptfile.js
$.ajax({
type:"POST",
url: "test2.php",
data: "getCustomersArray=true",
datatype: "JSON",
cache: false,
success: function(json) {
console.log(json[0]);
}
});
The result (from console.log(json[0])):
[
The result from just console.log(json):
[{"namn":"the first name"},{"namn":"The secound name"},{"namn":"the third name"}]
Im not sure why the squarebrackets are there but maybe they should be?
Ive been fuzzing with this problem for a while now and im sure its something stupid. Please help.
Upvotes: 0
Views: 1578
Reputation: 2020
Make sure you have the following code:
if(isset($_POST['getCustomersArray'])){
$runQuery = mysql_query($Query) or
die("SQL: $Query)<br />".mysql_error());
$numrows = mysql_num_rows($runQuery);
$array = array(array());
for($i = 0;$i <= 2; $i++){
$row = mysql_fetch_array($runQuery);
$array[$i]['namn'] = $row['fornamn'];
}
header("Content-Type: application/json; charset=UTF-8");
print json_encode($array);
}
Here you need to set the content-type to application/json and set the correct charset to avoid any cross-browser issues. Take a look at the following tutorial from my website which should cover all of this and perhaps some improvements to your code: PHP jQuery Search Tutorial - using JSON object the proper way
Hope this helps :)
Upvotes: 1
Reputation: 55750
datatype: "JSON",
supposed to be
dataType: "json", // json in lowercase and T has to be captalized
Upvotes: 1
Reputation: 35361
You have an incorrect option in the AJAX settings,
datatype: "json",
It should be:
dataType: "json",
Upvotes: 6