1

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);
}



?>
1
  • Try arrs.concat(data) instead of arrs.push(data) Commented Nov 21, 2017 at 4:06

2 Answers 2

1

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);
    }
});
Sign up to request clarification or add additional context in comments.

1 Comment

Not just "you can" .. you "have to" only echo one array per request
0

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.