I would like to push arrays which i got from Php page into javascript array by using jquery ajax. i have tried below code.
it outputs like
{"id":12,"name":"some-one"},{"id":1,"name":"john"}{"id":2,"name":"willy"}{"id":3,"name":"keith"}
what i want is, the structure of my arrays should be like this
{"id":12,"name":"some-one"},{"id":1,"name":"john"},{"id":2,"name":"willy"},{"id":3,"name":"keith"}
i have written my codes below, please help me someone else.
index.php
var arrs =[];
arrs.push(JSON.stringify({'id':12,'name':'some-one'}));
$.ajax({
type:'POST',
url:'my_arr_call.php',
success:function(data){
arrs.push(data);
alert(arrs);
}
});
my_arr_call.php
<?php
$my_arr = array(
array('id'=>1,'name'=>'john'),
array('id'=>2,'name'=>'willy'),
array('id'=>3,'name'=>'keith')
);
foreach($my_arr as $v){
$my_arrs = $v;
print json_encode($my_arrs);
}
?>
The problem is when you looped through the array and printed each element one by one. You can just print/echo the whole array instead (never forget the json_encode) to retain the structure.
<?php
$my_arr = array(
array('id'=>1,'name'=>'john'),
array('id'=>2,'name'=>'willy'),
array('id'=>3,'name'=>'keith')
);
echo json_encode($my_arr);
?>
Then on the client-side:
var arrs =[];
arrs.push({'id':12,'name':'some-one'});
$.ajax({
type:'POST',
url:'my_arr_call.php',
success:function(data){
arrs = arrs.concat(data);
alert(arrs);
}
});
The below codes work pefectly as i expected.
var arrs =[];
arrs.push({'id':12,'name':'some-one'});
var str_ar1 = JSON.stringify(arrs);
$.ajax({
type:'POST',
url:'my_arr_call.php',
success:function(data){
var all_arrs = JSON.stringify(JSON.parse(str_ar1).concat(JSON.parse(data)));
alert(all_arrs);
}
});
it outputs correctly as i expected,
[{"id":12,"name":"some-one"},{"id":1,"name":"john"},{"id":2,"name":"willy"},{"id":3,"name":"keith"}]
Thanks.