开发者

Send PHP Array To Javascript

///////UPDATE - I already have jquery library included to my code so if its easier with jquery than javascript let me know please.

OK. There are loads of questions on here that are sending a JavaScript array to php but only 1 which is the same as mine. Unfortunately I didn't understand the answer.

So, at the moment I have an associative array in开发者_开发技巧 php. I then used this code,

echo json_encode($this->_inputErrors);

I don't actualy know why i'm using it, just was mentioned a lot in other examples like this. So that then sends the data to javascript (via ajax) and if i do this code,

alert(requestText);

I get a long line of text. As I imagine i should.

So how do i then in javascript get the text back to an array?

Or Is there a better way to do this?

Many Thanks For Your Time,

Chris


var o = JSON.parse( requestText );

Include this ( https://github.com/douglascrockford/JSON-js/blob/master/json2.js ) to support old browsers.


requestText is a JSON string. You need to parse the string into an object.

You can use JSON.parse to convert the string to JSON.

var obj = JSON.parse(requestText);

If your browser doesn't have JSON, include this:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js


You need to set the return type as JSON

or if using jQuery, you can use jQuery's method getJSON() to get the JSON object from the url


Somedays before, I faced the same problem. Check my solution :)

array.html

$(document).ready(function(e){

    //This array is where I'll receive the PHParray
    var js_array=new Array();

    $("#btn").click(function(e){
             $.ajax({
                type:    'POST',
                 url:     'vector.php',
                 cache:   false,
                 success: function(data){

                    js_array=data;
                   //I use this "for" to print each array item into a div called "data".
                    for(var i=0;i<js_array.length;i++){
                         $("#data").append("<p>"+js_array[i]+"</p>");
                    }

                 },
                 dataType: 'json'
             });                  
    });                    

});

vector.php

<?php

$array = array(1,2,3,4,5,6);

/*As you, I use "json_encode" to serialize the array
echo json_encode($array);

?>

I hope it can help (:


The simplest way to transform that long line of text in Javascript is using eval:

alert(eval('(' + requestText + ')'));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜