PHP json_decode не поддерживается, есть альтернативы? - PullRequest
3 голосов
/ 14 сентября 2010

, как указано в заголовке, мой хостинг-провайдер не поддерживает 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 ]

1 голос
/ 14 сентября 2010

вы все еще можете использовать JSON.Есть несколько библиотек кодировщиков / декодеров, которые произносят слова без расширения, которое вы упомянули.Например:

и другие.Взгляните на json.org

1 голос
/ 14 сентября 2010

Существует альтернативная реализация json_decode для версий PHP более ранних, чем 5.2 (где json_ * включена).Он называется jsonwrapper и довольно хорошо работал для проекта, который я делал недавно.

В качестве альтернативы взгляните на некоторые пакеты PEAR, например Service_JSON .

0 голосов
/ 28 сентября 2010

Похоже, что это был неясный параметр в конфигурационном файле php, который связывался с json_decode, как только я его отключил, все работало нормально, спасибо всем за помощь, ребята! Я отредактирую этот ответ как можно скорее, чтобы описать, как я его получил.

0 голосов
/ 14 сентября 2010

Это - это то, что вы ищете.

0 голосов
/ 14 сентября 2010

См. Раздел PHP:

http://json.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...