如标题所述,我的托管服务提供商不支持 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 文件,但我想看看你的这家伙的意见是,如果有更好的方法可以达到预期的结果。
提前致谢!
最佳答案
您仍然可以使用 JSON。有几个编码器/解码器库没有你提到的扩展名。例如:
- Services_JSON:http://pear.php.net/pepr/pepr-proposal-show.php?id=198
- Zend_JSON:http://framework.zend.com/manual/en/zend.json.html
和其他人。看看 json.org
关于不支持 PHP json_decode,还有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707903/