开发者

How do I evaluate this specific JSON with Prototype(JS)?

开发者 https://www.devze.com 2023-02-22 20:08 出处:网络
Data from a Server became a JSON array as respon开发者_运维百科seText an ajax request : Price : [{\"id\":\"1\",\"max_price\":\"100000\"},{\"id\":\"2\",\"max_price\":\"150000\"},{\"id\":\"3\",\"max_pr

Data from a Server became a JSON array as respon开发者_运维百科seText an ajax request :

Price : [{"id":"1","max_price":"100000"},{"id":"2","max_price":"150000"},{"id":"3","max_price":"200000.55"}]

Name : [{"id":"1","name":"P1"},{"id":"2","name":"P2"},{"id":"3","name":"P3"}]

I see into Prototype this method : var json = transport.responseText.evalJSON(true);

How can I just get the Price array, so JSON equals:

[{"id":"1","max_price":"100000"},{"id":"2","max_price":"150000"},{"id":"3","max_price":"200000.55"}]`


The php needs to include the json header:

header('Content-type: application/json');

The ajax request needs to include evalScripts (make sure you trust the source):

new Ajax.Request("json.php",
          { method: 'get',
            parameters: {'xyz': 'json', 'var2': 'some_val'},
            evalScripts: true,
            onSuccess: function(response){your_function(response);}});

Then your function can get the json like the following:

your_function = function (response) {
  var result = response.responseJSON;
  ...
}

Edit: There's also these instructions directly from the source: http://www.prototypejs.org/learn/json


Edit2: Here's how to update the server:

$return_data = array();
$return_data['price'] = getPrice($db); 
$return_data['name'] = getName($db);
echo json_encode($return_data)."\n";

after you do this, in js you can do something like the following (from the above your_function example):

alert ("first id is: " + result['price'][0]['id']);
0

精彩评论

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