Как передать массив из php в js. Переменную Лучший способ передать массив между PHP и Javascript

Есть два вопроса: 1) как из базы получить то что мне необходимо. 2)как передать, то что я получил из базы в javascript у меня есть html файл. в нем подключен javascript map.js и файл map.php. джава скрипт нормально выполняется, а пхп файл не выполняется вроде. как привязать джаваскрипт и пхп вместе в html файле, я не знаю. я не изучал пхп и джаваскрипт, у меня немного другая специализация, но сейчас по необходимости приходится что-то писать.

вот код map.php:

тут из базы мне нужно получить массив элементов координата 1 и координата 2 пример формата элемента массива

потом этот массив нужно передать в javascript, тут он у меня уже инициализирован, но нужно его заполнять из базы. Массив называется markers. map.js

Var map; var point = 1; //точки для двигателя var markers = { point1:, point2:, point3:, point4:, point5:, point6:, point7:, point8:, point9:, point10:, }; $(document).ready(function(){ //карта var latlng = new google.maps.LatLng(55.755786, 37.617633); var myOptions = { zoom: 13, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); //отмечаем все точки на карте var marker = ; for(i in markers){ marker[i] = new google.maps.Marker({ position: new google.maps.LatLng(markers[i], markers[i]), map: map }); } //map.panTo(new google.maps.LatLng(markers.point10, markers.point10)); //двигатель карты по точкам function mover(){ map.panTo(new google.maps.LatLng(markers["point"+point], markers["point"+point])); point ++; if(point>10)point=1; } //карта не используется google.maps.event.addListener(map, "idle", function(){ setTimeout(mover, 500);//время в милисекундах }); });

P.S. так как из-за недостатка очков нет возможности ни плюсануть, ни ответить, напишу здесь. благодарю пользователя Inkognitoo ,dekameron за помощь. У меня получилось то, что я хотел реализовать. Все работает. Воспользовался идеей decameron.первый или второй раз работаю с пхп. Я долгое время на выкупал в чем суть и почему не работает,оказывается у меня был html файл а в нем и также потом я сделал index.php и загнал html в echo, также javascript загнал в echo. и в нужное месте вставил var markers. вообщем всем спасибо за помощь и потраченное время.

НО РЕШЕНИЕ Deonisa оказалось лучше потому, что не приходится все запихивать в echo, можно использовать html страницу и будет все аккуратно и чисто. действительно это не гавнокод будет.

http://www.wiseguys.com.ua/ вот готовое решение, ну это только часть того, что я планирую, но уже хорошо что один кусок готов. я вообще не вэб разработчик, работаю с андроид ос.

AJAX и jQuery. Передача параметров из PHP в JavaScript. Использование JSON
(изменения от 10.12.2012)

Кто программирует AJAX-приложения, часто сталкивается с задачей передачи параметров из PHP или другого языка программирования в JavaScript. Обычно при этом передаются данные из базы данных, доступ к которым имеет только серверный скрипт. Как отобразить их на клиентском компьютере, не перезагружая страницу? Об этом и написана эта статья.

Скажем пару слов о JSON (JavaScript Object Notation). Это текстовый протокол обмена данными, чем-то похожий на более привычный XML, но данные записываются в нем более компактно. Изначально он был разработан для нужд JavaScript (отсюда и получил свое название), но в данное время используется более широко.

Например, если мы хотим записать массив из PHP в JSON, то вот что из этого выйдет.

Исходный массив:

$n = array("Min" => 15, "Sec" => 44);

Этот же массив в формате JSON:

{"Min":"15","Sec":"44"}

Подробная нотация формата JSON и его приложения для различных языков программирования приведены на сайте http://www.json.org/

Рассмотрим простой пример, который будет состоять из двух файлов.

Первым файлом будет PHP-скрипт, который будет формировать JSON-запись, содержащую текущие минуты и секунды.

Вторым файлом будет HTML-страница, содержащая JavaScript с применением библиотеки jQuery, который будет с периодичностью в 1 секунду вызывать PHP-скрипт, получать запись JSON и выводить её содержимое в контейнер веб-страницы.

Файл №1. json.php

В первой строке файла в функции header() мы задаем формат вывода JSON-записи, указываем, что документ является JavaScript"ом в кодировке UTF-8.

Во второй строке формируем ассоциативный массив с полями Min и Sec , в которые записываем текущие значения минут и секунд.

В третьей строке формируем JSON-запись из созданного массива.

Внимание! Функция json_encode() будет работать только в PHP версии 5.2 и выше.

Файл №2. example.html function json_example() { $.getJSON("json.php", function(data) { s = ""; $.each(data, function(key, val) { s = s + key+" => " + val + "
" }); $("#info").html(s); }); } setInterval(json_example, 1000);

В HTML-странице создается контейнер info . Функция json_example() , выполняющаяся 1 раз в секунду, использует jQuery-функцию $.getJSON() , с помощью которой получает JSON-запись с сервера, вызывая файл json.php. Далее, полученная JSON-запись разбивается на пары "ключ - значение" функцией $.each() , собирается в HTML-виде в переменную s и выводится в контейнер info , т.е. на экран в клиентском приложении.

Скачать исходные файлы примера (33 кб):

Важно!
Для того, чтобы примеры работали корректно, необходимо:
1. Все файлы должны быть записаны в кодировке UTF-8.
2. PHP-скрипты должны выполняться на веб-сервере, а не запускаться в браузере, как файлы.



передать переменную из php в javascript ajax (4)

Для этого я обычно использую объект JSON:

  • На стороне сервера JSON кодирует ваши данные: json_encode($data);
  • На стороне JavaScript я пишу функцию, которая принимает объект JSON в качестве параметра и распаковывает его.

Когда вы распаковываете объект, вы можете распечатать содержимое массива в или где бы вы ни захотели на странице (jQuery делает довольно приятную работу).

Поэтому у меня есть массив записей, полученных из базы данных. Массив находится в формате;

$rows [ 0 ][ "id" ]= 1 ; $rows [ 0 ][ "title" ]= "Abc" ; $rows [ 0 ][ "time_left" ]= 200 ; $rows [ 1 ][ "id" ]= 2 ; $rows [ 1 ][ "title" ]= "XYZ" ; $rows [ 1 ][ "time_left" ]= 300 ; //And so on upto 10-20 rows

Каков наилучший способ переноса этого массива на мой код javascript? Я хотел бы, чтобы javascript мог прокручивать все записи и использовать атрибут «id», обновить div с помощью этого идентификатора с некоторой информацией.

Мой код javascript находится во внешнем файле.js, но я могу выполнить php-код в HTML-коде моей страницы. Поэтому я мог бы сделать что-то вроде этого:

В my_file.js:

var rows = New Array ();

В HTML-коде:

rows [][ "title" ]= "" ; //And so on

Если вы делаете встроенные данные, я всегда любил делать

window . sitescriptdata = {}; window . sitescriptdata . foo = ( );

Для базового материала вы сохраняете обратный вызов AJAX. Кроме того, если вы хотите приклеить данные к узлу DOM, способ «метаобъекта» - это то, что я действительно люблю.