Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Prototype(JS)评估这个特定的JSON?_Php_Json_Prototypejs - Fatal编程技术网

Php 如何使用Prototype(JS)评估这个特定的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

来自服务器的数据作为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=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']);