【发布时间】:2010-09-14 10:09:57
【问题描述】:
如标题所示,我的托管服务商不支持json_decode,所以我需要找到一种方法来调整我的代码以达到相同的效果,但不使用JSON,这是我的代码,
jQuery:
var allLocations = [];
$(".locations").each( function(i, location) {
// for each location block
location = $(location);
var loc = {
'province' : $("select[data-loc*='province']", location).val(),
'town' : $("select[data-loc*='town']", location).val()
};
allLocations.push( loc );
});
//POST the locations information
$.ajax({
type: 'POST',
url: 'locations.php',
dataType: 'json',
data: { locations: JSON.stringify(allLocations), uid: uid },
success: function(data){
//alert(data)
}
});
PHP:
$json = $_POST['locations'];
$uid = $_POST['uid']; // $json is a string
$json_array = json_decode($json, true);
mysql_connect('localhost','user','pass') or die(mysql_error());
mysql_select_db('eskom_products') or die(mysql_error());
//insert the locations into the database
while($json_array as $key){
$query = mysql_query("INSERT INTO suppliersLocations (supplier_id, province, town) VALUES('".$uid."', '".$key['province']."', '".$key['town']."' ) ") or die(mysql_error());
}
echo $text;
如您所见,我正在获取每个位置的省和镇值并用它创建一个 JSON 对象,然后我通过 $.ajax 将其发送到 PHP 文件,但现在因为 json_decode 没有不起作用,我需要尝试找到另一种解决问题的方法,我正在考虑尝试将关联数组传递给 php 文件,但我想看看你的人的输入是什么,以及是否有更好的方法达到预期结果的方法。
提前谢谢!
【问题讨论】:
-
在转向替代实施之前,我会尝试询问托管服务提供商是否以及何时计划升级到 5.2。也许礼貌地问一下是否有可能加快这个过程
-
PHP 二进制文件(例如 PHP 脚本库中)之外的 json 可能会很慢且有问题。