- Pass a PHP array to a JavaScript function [duplicate]
- Php передать массив javascript
- Фильтрация данных с помощью zend-filter
- Контекстное экранирование с помощью zend-escaper
- Подключение Zend модулей к Expressive
- Совет: отправка информации в Google Analytics через API
- Подборка PHP песочниц
- Совет: активация отображения всех ошибок в PHP
- Как из php передать массив в javascript?
- How to pass PHP array parameter to Javascript Function?
- 7 Answers 7
- Как передать из php в javascript массив?
Pass a PHP array to a JavaScript function [duplicate]
In the following example $php_variable can be any PHP variable.
In your code, you could use like the following:
In cases where you need to parse out an object from JSON-string (like in an AJAX request), the safe way is to use JSON.parse(..) like the below:
var s = ""; var obj = JSON.parse(s);
What would be the disadvantage of simply writing var obj = ; ? Won’t PHP encode the JSON object securely in a way that it’s parsable by the script??php>
Yes, that is the way. But my intention was to put across JSON.parse() as one safe way to parse from string. Thanks for pointing, I will edit my post.
@RemusRigo & Nuno: Just a guess, are you opening PHP tags within PHP tags? In any case, please post a new question.
You can pass PHP arrays to JavaScript using json_encode PHP function.
"Mon", 1 => "Tue", 2 => "Wed", 3 => "Thu", 4 => "Fri", 5 => "Sat", 6 => "Sun", ) ?> var jArray = ; for(var i=0; i
can you help? permission[1]=0 php array becomes object like this «permission»: , while permission[0]=0 remains Array."1":["0"]>
hey @shyammakwana.me you might have made a nested array, check print_r($array) before json_encode() and see if the array formed is like same as above then it will work fine.
Hi @Tarun thanks for reply, yes my array is like $p[1][0] = 0 ; and it gives object in my JS, it’s nested. how to overcome this?
Data transfer between two platform requires a common data format. JSON is a common global format to send cross platform data.
drawChart(600/50, JSON.parse(''), JSON.parse(''), JSON.parse(''), JSON.parse(''))
This is the answer to your question. The answer may look very complex. You can see a simple example describing the communication between server side and client side here
$employee = array( "employee_id" => 10011, "Name" => "Nathan", "Skills" => array( "analyzing", "documentation" => array( "desktop", "mobile" ) ) );
Conversion to JSON format is required to send the data back to client application ie, JavaScript. PHP has a built in function json_encode(), which can convert any data to JSON format. The output of the json_encode function will be a string like this.
On the client side, success function will get the JSON string. Javascript also have JSON parsing function JSON.parse() which can convert the string back to JSON object.
$.ajax(< type: 'POST', headers: < "cache-control": "no-cache" >, url: "employee.php", async: false, cache: false, data: < employee_id: 10011 >, success: function (jsonString) < var employeeData = JSON.parse(jsonString); // employeeData variable contains employee array. >);
Php передать массив javascript
В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Совет: активация отображения всех ошибок в PHP
При поднятии PHP проекта на новом рабочем окружении могут возникнуть ошибки отображение которых изначально скрыто базовыми настройками. Это можно исправить, прописав несколько команд.
Как из php передать массив в javascript?
Есть два вопроса: 1) как из базы получить то что мне необходимо. 2)как передать, то что я получил из базы в javascript у меня есть html файл. в нем подключен javascript map.js и файл map.php. джава скрипт нормально выполняется, а пхп файл не выполняется вроде. как привязать джаваскрипт и пхп вместе в html файле, я не знаю. я не изучал пхп и джаваскрипт, у меня немного другая специализация, но сейчас по необходимости приходится что-то писать. вот код map.php:
тут из базы мне нужно получить массив элементов координата 1 и координата 2 пример формата элемента массива [54.345324,23.4354353] потом этот массив нужно передать в javascript, тут он у меня уже инициализирован, но нужно его заполнять из базы. Массив называется markers. map.js
var map; var point = 1; //точки для двигателя var markers = < point1:[55.755786, 37.617633], point2:[55.7543712, 37.6104643], point3:[55.7531491, 37.6101551], point4:[55.7506212, 37.6101143], point5:[55.7541852, 37.5274149], point6:[55.7473746, 37.609723], point7:[55.803607, 37.328598], point8:[55.7422534, 37.6064208], point9:[55.7397707, 37.6055861], point10:[55.704945, 37.5277036], >; $(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][0], markers[i][1]), map: map >); > //map.panTo(new google.maps.LatLng(markers.point10[0], markers.point10[1])); //двигатель карты по точкам function mover()< map.panTo(new google.maps.LatLng(markers["point"+point][0], markers["point"+point][1])); point ++; if(point>10)point=1; > //карта не используется google.maps.event.addListener(map, 'idle', function()< setTimeout(mover, 500);//время в милисекундах >); >);
How to pass PHP array parameter to Javascript Function?
I am new to programming so Im having hard time fixing this one which is obviously simple for you guys. When I hit the submit button it says the that the array size is 1 which I think should be 7. How could this be?
7 Answers 7
Notice the json_encode , which encodes objects or arrays for Javascript (JSON stands for JavaScript Object Notation) and also notice the ‘ instead of » , because JSON uses » .
Although, this soulution would be better:
.
You mean I have to mix my javascript with my php code. I want to separate them. Pls help I am a beginner.
function showMovies(movies)
I hope this will help you.
Encode as JSON before outputting.
Wow, Ignacio, that was rude. @Son of Man: You can do a quick search on Google for «JSON» to get a good idea of what JSON is.
Your PHP variables only live on the server. They are completely separate from the JavaScript variables on the client. The only mechanism for passing values from the server to the client is through the contents of the web page (or through specially requested behind-the-scenes web content through AJAX).
This means that to make your JavaScript receive PHP values, you have to write JavaScript with those values embedded inside of it. You must mix the PHP with the JavaScript at least a tiny bit to get the stuff that runs on the client to have any data from the server.
This is how all web server-side scripting works in all languages.
JavaScript simply cannot know what goes in your movies variable unless you stuff it full of values, in JavaScript.
I recommend you to @levu’s answer to see a good way to get your PHP variable’s values into JavaScript.
Как передать из php в javascript массив?
Каким образом можно передать php массив в javascript?
$kolz5 = mysql_query("SELECT * FROM numbers") or die ("error: ".mysql_errno()); $content = array(); while (($row=mysql_fetch_assoc($kolz5)) !== false)
в коде javascript принимаем:
Пробовал с помощью json_encode, но таким образом, т.к. в массиве есть текст, вместо него передается абракадабра типа u. и т.д.
$content = array('абвгд', 'abcdefg', '12345'); echo json_encode($content);
JS (+jQuery):
alert($.parseJSON(data));
Если у вас почему-то отображается абракадабра, то проблема точно не в JSON’е, а в кодировке.
То есть должно быть соответствие кодировки поля в таблице и кодировки html-документа (например, UTF-8):
вынужден тебя разочаровать, вопреки распространенному суеверию, HTML теги на кодировку страниц на сайте не влияют
я проверил, везде выставлена правильная кодировка
alert($.parseJSON(data));
Анатолий K: ок, а как с ним работать после parseJSON? Вот я получил и массив и не могли бы чирикнуть как с этим дальше обращаться? или ссылку кинуть на мануалы?
Анатолий K: Т.е. подразумевалось, что массив распарсили и теперь его можно юзать. Как с ним работать?
FanatPHP: Описание в тэге meta может повлиять на парсинг, если в Content-Type с сервера нет указания кодировки и документ пришёл без BOM. Разнюхивание кодировки — весьма многоэтапный процесс.
Но вы правы, практиковать выдачу текстового документа без указания кодировки — глупость вселенская.
alert( user.friends[1] ); // 1
мы обращаемся к friends и выбираем его второй элемент, а если у меня
[< "thelocation" : "москва", "":"">,< "thelocation" : "london", "":"">], то как мне обратиться допустим ко второму thelocation?
FanatPHP: Поставьте в настройках сервера пустую кодировку, HTML-файл с кусками русского текста сохраните в UTF без BOM, а в meta поставьте charset=»windows-1251″.
Полюбуйтесь на кракозябры, потом замените на charset=»utf-8″ и наблюдайте чудесное исправление символов на нормальные.
FanatPHP: Когда открывается файл, ищется charset в Content-Type. Если там нет, загружается первые 500 байт (так вроде. ) и определяются первые несколько байт. Если эти байты не представляют собой BOM, то ищется meta и атрибут charset.
Файлы в UTF без удаления сигнатуры открываются нормально и без указания кодировки с сервера, и без всяких meta. Но если удалить сигнатуру, и кодировку с сервера не отдавать — вот тогда meta и нужен. И браузеры его читают.
FanatPHP: А вот тут поясните — когда браузер получает HTTP-сообщение, то HTTP Headers нет? Как это возможно?
Евгений Петров: когда браузер запрашивает НТТР ресурс, тогда НТТР заголовки есть. Когда открывает файл — откуда они возьмутся?
FanatPHP: Браузер получил HTTP-сообщение с заголовками, в которых есть Content-Type с типом и кодировкой, и телом, в котором находится текст для предстоящего парсинга. И вот когда браузер начинает парсинг, то секция заголовков чудесным образом испаряется?)
А вообще, я только лишь поправил вас — meta читается при необходимости всеми браузерами. Надеюсь, по этому моменту прения закончены?)
Евгений Петров: если это НТТР ответ с типом и кодировкой, то на мету не смотрит никто и никогда. По поводу чтения меты — я тестировал давно и на HTML4. При запросе НТТР ресурсов мета игнорировалась, при открытии файлов — использовалась
FanatPHP: Так я и написал выше, что при наличии charset в Content-Type от сервера или сигнатуры в самом документе никакая meta не нужна. Как проверить — также описал.
Я не понимаю, что вы имеете ввиду под термином «при запросе мета игнорировалась». Информация из меты берётся при нехватке информации о кодировке HTML-документа (Content-Type, BOM) только в процессе парсинга. Причём тут получение, не пойму.
limpopo1992: отвечаю на ваш вопрос: если у вас есть массив
var arr = [< "thelocation" : "москва", "":"">,< "thelocation" : "london", "":"">];
то ко второму thelocation можно обратиться так:
alert(arr[1].thelocation);
Функция PHP json_encode возвращает строку, содержащую JSON эквивалент стоимости переданного ей в качестве мы демонстрируем здесь с численно индексированный массив:
The implode() function returns a string from the elements of an array.
The implode() function accept its parameters in either order. However, for consistency with explode(), you should use the documented order of arguments.
The separator parameter of implode() is optional. However, it is recommended to always use two parameters for backwards compatibility.
This function is binary-safe.