2016-10-31 2 views
-1

У меня есть json-файл в localstorage, и я назначил json переменной с javascript, чтобы получить доступ к ней с помощью php. Теперь я хочу добавить значения этого json-файла в свой localstorage в json-файл на моем веб-сервере.append json array from localstorage to json file на сервере

это образец кода Javascript, как я добавил LocalStorage JSON переменной

var lstore = ('data:application/json;charset=utf-8,' + encodeURIComponent(localStorage.regions)); 

теперь, когда я запустить window.open(lstore); в JavaScript программа, я могу увидеть полный массив JSON в окне браузера.

образец JSON массив выглядит следующим образом

[{ 
    "start":6, 
    "end":8.2, 
    "data":{ 
      "note":"ex1" 
     }}, 
{ 
    "start":8.6, 
    "end":12.2, 
    "data":{ 
      "note":"rtt save" 
      }}, 
{ 
    "start":12.8, 
    "end":16.2, 
    "data":{ 
      "note": "rtl rss" 
      }}, 

то, что я хочу сделать, это вызвать PHP скрипт из яваскрипт и затем добавить значения моих данных LocalStorage JSon в файл JSON на моем веб-сервере. Но также я хочу проверить, находятся ли те же самые значения «start» и «end» в json-файле на моем сервере, а затем просто обновить значение «note» orelse, добавить новые «start», «end» и «data», стоимость.

+0

Добро пожаловать в переполнение стека. Вы можете форматировать исходный код с помощью кнопки панели инструментов [Пример кода '{}'] (http://i.stack.imgur.com/VYd26.png) - я сделал это для вас на этот раз. –

+0

Я не совсем понял, чего вы хотите, но если я прав, вам нужно, чтобы этот json-объект у вас был .php-файл, а затем в .php-файле используйте json_decode(), чтобы декодировать объект json в строку. Я не знаю, было ли это полезно. –

ответ

1

Во-первых, мы должны понять, 3 основные концепции здесь:

  1. Ваш Javascript живет в браузере вашего локального компьютера() клиентскую.
  2. Ваш PHP работает на удаленном сервере (serveride).
  3. Жизненный цикл веб-приложения выполняется в запросах (каждый раз, когда вы отправляете/получаете то, что из вашего браузера).

Вы не можете напрямую сообщить об этом в реальном времени из коробки. Однако вы можете отправить запрос со своего javascript (clientide) на ваш сервер (serveride).

Использование JQuery довольно легко. В вашем файла JavaScript вы:

$.post('/yoursite.com/your_php_script.php', lstore);

Это будет отправить запрос AJAX на сервер. Теперь в your_php_script.php вам нужно записать содержимое этого JSON.

$data = json_decode(file_get_contents('php://input'));

Это читает JSON из тела запроса вы просто послали.

Возможно, вы захотите использовать средства разработки Chrome и проверить вкладку сети. Там вы можете увидеть всю информацию о запросе. Удачи!