Php 如何使用Prototype(JS)评估这个特定的JSON?
来自服务器的数据作为ajax请求的响应文本变成JSON数组:Php 如何使用Prototype(JS)评估这个特定的JSON?,php,json,prototypejs,Php,Json,Prototypejs,来自服务器的数据作为ajax请求的响应文本变成JSON数组: 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"}] 我在原型中看到了这个方法:var json=transpor
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"}]
我在原型中看到了这个方法:var json=transport.responseText.evalJSON(true)代码>
如何获取Price数组,使JSON等于:
[{"id":"1","max_price":"100000"},{"id":"2","max_price":"150000"},{"id":"3","max_price":"200000.55"}]`
php需要包含json标头:
header('Content-type: application/json');
ajax请求需要包含evalscript(确保您信任源):
然后,您的函数可以获得如下所示的json:
your_function = function (response) {
var result = response.responseJSON;
...
}
编辑:还有这些直接来自源代码的说明:
Edit2:以下是如何更新服务器:
$return_data = array();
$return_data['price'] = getPrice($db);
$return_data['name'] = getName($db);
echo json_encode($return_data)."\n";
完成此操作后,在js中可以执行以下操作(从上面的函数示例中):
您提供的数据实际上不是有效的json。这正是服务器发送给您的内容吗?我认为应该是“price”:…
和“name”:…
Doh,现在我发现您从服务器获得的不是正确的JSON,所以这种技术不起作用。如果可能的话,我建议修复服务器。修复服务器?但是怎么做呢?我在服务器上使用它:$price=json_encode(getPrice($db))$name=json_encode(getName($db));echo“价格:”,$Price,“\n”;echo“Name:”,$Name,“\n”代码>这已经是JSON了,不是吗?这是2个JSON字符串和一些其他数据,使得内置方法无法使用它。或者将一个参数传递给php,以指示您想要哪个变量(价格或名称),并且只echo json_encode(…)
或合并两个对象并对合并对象进行json\u编码。我将用一个例子来更新。
$return_data = array();
$return_data['price'] = getPrice($db);
$return_data['name'] = getName($db);
echo json_encode($return_data)."\n";
alert ("first id is: " + result['price'][0]['id']);