Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2013, 21:04   #1
Voronar
Пользователь
 
Регистрация: 09.06.2012
Сообщений: 32
По умолчанию Передача JSON-строки из PHP в JavaScript

Здравствуйте. Читая сабж в этой статье я так и не понял как именно передать JSON-строку из серверного скрипта в клиентский.

Понятно, что вот таким образом
PHP код:
<?php
$arr 
= array('a' => 1'b' => 2'c' => 3'd' => 4'e' => 5);
echo 
json_encode($arr);
?>
я кодирую нужную мне строку с данными.

Понятно, что вот таким образом
var array = JSON.parse(?);
декодирую строку в объект JavaScript.

Только не понятно, что указывать вместо "?" ?
Как я понимаю, echo выводит строку как содержимое html-страницы.
И как мне его поймать в JS-скрипте? Или надо передавать закодированную строку с данными через get? Так ведь тоже можно?

Посоветуйте, пожалуйста, что-нибудь актуальное.
Voronar вне форума Ответить с цитированием
Старый 08.02.2013, 21:43   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

1. Делать этот вывод в тег js, я PHP не знаю, но наверное так:
Код:
<script>
  <?php 
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 
    echo "var data = ".json_encode($arr); 
  ?>
</script>
2. Или создавать отдельный РНР файл и к нему посылать аякс-запрос.
3. Делать echo внутри невыполняемого script-сценария. Например:
Код:
<script type="data/json" id="data">
  <?php 
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 
    echo json_encode($arr); 
  ?>
</script>
И потом по id вынимать innerHTML.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 09.02.2013, 00:35   #3
Voronar
Пользователь
 
Регистрация: 09.06.2012
Сообщений: 32
По умолчанию

Попробовал так.
Код:
<!DOCTYPE HTML>
<html>
    <body>
        <script type="data/json" id="data">
            <?php 
            $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 
            echo json_encode($arr); 
            ?>
        </script>
	   
	<script language="JavaScript">
	     var j_str = document.getElementById('data').value;
	     document.write(j_str);
	</script>
    </body>
<html>
В итоге - "undefined".
Voronar вне форума Ответить с цитированием
Старый 09.02.2013, 02:47   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Какое value? Я же написал - innerHtml
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 09.02.2013, 15:00   #5
Voronar
Пользователь
 
Регистрация: 09.06.2012
Сообщений: 32
По умолчанию

Спасибо. Работает, просто не знал зачем нужен innerHTML. Уже разобрался.
Этот вариант актуален? Мне кажется, как-то громоздко. Сейчас, наверное все делают ajax-запросы? Просто мне нужно будет делать запрос, например, к другой php-страницы. А вы писали, что ajax подходит для этого случая.
Voronar вне форума Ответить с цитированием
Старый 09.02.2013, 19:00   #6
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

не обязательно для другой странице в физическом смысле. Достаточно создать простой файл с роутами, который бы обслуживал большую часть запросов.
Все варианты имеют право на жизнь. Этот хорош тем, что снижает количество необходимых запросов.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Итерация через объект JSON в Javascript maomam Помощь студентам 0 03.11.2012 00:51
php POST json kos1nus PHP 1 16.08.2011 16:10
Передача HTML через JSON nec117 JavaScript, Ajax 3 08.08.2011 14:06
json encode\decode в javascript mrgrudge JavaScript, Ajax 5 01.06.2011 16:34
php и json Abuhamed PHP 12 28.11.2010 17:41