2013-02-25 2 views
1

ОК, поэтому мне нужно, чтобы PHP запускался через кучу URL-адресов, которые динамически генерируются javascript. Мой единственный опыт получения данных с использованием PHP до сих пор использовал URL-адрес веб-сайта, в котором данные JSON были доступны напрямую через API.Как сделать данные JSON из JSON.stringify доступными по PHP

Итак, после многих мучительных часов перепрыгивания через всевозможные обручи, я, наконец, получил свои данные до того момента, когда у меня есть URL-адреса и идентификатор в идеальном синтаксисе JSON (спасибо JSON.stringify()!) , Теперь, я бы очень хотел указать PHP на url, чтобы начать использовать этот JSON .... но как ?!

Я не решаюсь опубликовать это, но небольшой толчок в правильном направлении был бы весьма признателен. Из того, что я сейчас просматриваю, кажется, мне может потребоваться больше взглянуть на POSTing этих данных на мой сервер? Должен ли я смотреть в AJAX?

Опять же, я знаю, что это настоящий вопрос для начинающих, поэтому я ищу больше для небольших подтасовки в правильном направлении, а не для того, чтобы дать мне блок кода, который мне нужно использовать.

Спасибо за любую помощь!

+0

После того, как вы подкрепили свой JSON, вы используете AJAX для отправки его на PHP, где вы используете json_decode для его декодирования в PHP-массив/объект, с которым вы можете работать. –

+0

Поскольку вы сказали, что используете jQuery в комментарии ниже, я добавил этот тег. –

ответ

2

Есть две части, что вам нужно сделать:

  1. Отправьте JSON на сервер.

  2. Декодировать JSON в «ассоциативный массив» PHP.

Первая часть может быть сделано путем отправки формы или с помощью Ajax для отправки POST на сервер. Если вы не используете какие-либо библиотеки, для этого вы должны использовать XMLHttpRequest, но все основные библиотеки JavaScript имеют удобные функции, чтобы упростить работу. Так как самый простой способ отправить строку JSON на сервер - это использовать стандартную кодировку данных множественного формата, обязательно закодируйте строку JSON, используя encodeURIComponent. Так, например:

var xhr = new XMLHttpRequest(); // Older browers may need some special handling when creating the object 
xhr.open("POST", "/path/to/your/page"); 
xhr.send("jsondata=" + encodeURIComponent(yourJsonString)); 

Поскольку вы сказали, что вы используете JQuery, вы можете использовать ajax размещать данные на сервере:

$.ajax({ 
    url:  "/path/to/your/page.php", 
    type: "POST", 
    data: {jsondata: yourJsonString}, 
    success: function(data) { 
     // Handle successful post here, use `data` if your PHP 
     // page sends a reply 
    }, 
    error: function() { 
     // Handle error here 
    } 
}); 

Вторая часть (получение JSON и его декодирование) осуществляется путем принятия переменной POST (jsondata в приведенном выше) и декодирования ее через json_decode.

+0

Хм, мне нужно немного помочь с частью/path/to/your/page (я использую jQuery, но это все еще URL, который я не совсем уверен, что я схватываю). Я указываю страницу PHP с URL-адресом? Или я укажу некоторый пустой файл, который затем будет заполнен данными POSTed JSON (аналогично API JSON, с которым я имел дело)? Или ничего из вышеперечисленного? Если это страница PHP, как я могу ссылаться на данные JSON, используя json_decode? json_decode (stringifiedarray), где stringifiedarray - это имя массива в моем .js-файле? – Kris

+0

@Kris: '/ path/to/your/page' - это путь к странице PHP, которая будет получать и обрабатывать данные JSON. Поскольку вы используете jQuery, я обновил ответ. –

+0

Когда я сделал свою первую страницу php, я использовал это в начале, чтобы запустить JSON и заставить его работать: '$ json = file_get_contents (« http://api.link.com/etc »); $ elements = json_decode ($ json); ' Но я не уверен точно, как начать сейчас. Будем ли я самостоятельно ссылаться с помощью $ json = file_get_contents (test.php) и $ elements = json_decode ($ json), где test.php - это URL-адрес, с которым я был отправлен с моим аякс-запросом? Я полный noob на PHP и, честно говоря, даже не знаю, как делать базовые проверки, например, правильно ли загружаются данные JSON, поэтому извините за то, что вы отбросили такие рудиментарные вопросы! – Kris

Смежные вопросы