如标题所示,我的托管服务提供商不支持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文件,但现在{{1}不起作用,我需要尝试找到解决问题的另一种方法,我正在考虑尝试将关联数组传递给php文件,但我想看看你的人的输入是什么,如果有的话可能是实现预期结果的更好方法。
提前Thanx!
答案 0 :(得分:1)
对于早于5.2的PHP版本(其中包含json_ *),有一个json_decode的替代实现。它被称为jsonwrapper,并且对我之前做过的项目非常有效。
或者看看一些PEAR包,例如: Service_JSON
答案 1 :(得分:1)
你仍然可以使用JSON。有几个编码器/解码器库没有你提到的扩展名。例如:
和其他人。看看json.org
答案 2 :(得分:0)
参见PHP部分:
答案 3 :(得分:0)
This正是您要找的。 p>
答案 4 :(得分:0)
似乎在php配置文件中的一个模糊设置正在弄乱json_decode,一旦我禁用它,一切正常,Thanx为你所有的帮助人!我会尽快编辑这个答案,以描述我是如何运作的。