Intereting Posts
Попытка обновить одну таблицу после вставки в другую с помощью Symfony2 и Doctrine2 «Потерянное соединение с сервером MySQL» при попытке подключения к удаленному серверу MySQL Удалите настраиваемое расширение Magento с его базой данных Преобразование Javascript Regex в PHP MySQL, где column = 'x, y, z' Уникальный, непредсказуемый, 12-значный, целочисленный идентификатор Каков наилучший способ проверки чисел с запятой как десятичной разделитель? попытка включить allow_url_fopen путем установки php.ini в wordpress root не работает Как исправить ошибку синтаксиса, неожиданную ошибку T_IF в php? Как я могу отобразить описание элемента родительского меню с помощью Walkers WordPress? Как легко минимизировать JS в PHP … Или что-то еще Вычисление среднего увеличения из значений массива в PHP Аурелия, начинающаяся с параметров, переданных PHP Неустранимая ошибка: Class 'MySQLi' не найден Вызов функции-функции-члена () для не-объекта

Как передать массив строк из PHP в Javascript с помощью $ .ajax ()?

У меня есть PHP-скрипт, который извлекает имена (строки) из базы данных. Я хотел бы передать этот массив в Javascript, используя $ .ajax (). Я не могу понять, как я должен кодировать массив в PHP, а затем декодировать его в Javascript. Может ли кто-нибудь дать пример кода для этого? Большое спасибо !!

<?php // test.php $myArray = array(1, 2, 3); echo json_encode($myArray); ?> 

HTML-файл:

 $(function() { $.getJSON('http://localhost/test.php', function(data) { $(data).each(function(key, value) { // Will alert 1, 2 and 3 alert(value); }); }); }); 

u может использовать json_encode

 <?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?> 

полный пример, который вы можете прочитать по адресу:

http://www.prodevtips.com/2008/08/15/jquery-json-with-php-json_encode-and-json_decode/

или

http://www.prodevtips.com/2009/12/09/multiple-select-lists-with-jquery-and-json/

 <?php echo json_encode(array('key' => 'value', 'cool' => 'ice')); ?> 

json – объект javascript. Поэтому нет необходимости «декодировать» его. Однако похоже, что вы используете jquery. Для извлечения json-данных существует отличная функция:

 jQuery.getJSON(url, senddata, function(returndata){alert(returndata.cool);}) 

или

 jQuery.getJSON(url, senddata, function(returndata){mybigfunction(returndata);}) mybigfunction(data) { myvar = data.cool; alert(myvar); } 

http://api.jquery.com/jQuery.getJSON/

или вы также можете сделать это с $ .ajax, как вы упомянули:

 jQuery.ajax({ url: url, dataType: 'json', data: senddata, success: function(data){mybigfunction(data)} }); mybigfunction(data) { myvar = data.cool; alert(myvar); } 

http://api.jquery.com/jQuery.ajax/

«Обратный вызов» – это функция, которая вызывается и передает данные json, возвращаемые с URL-адреса.

Вы будете «льдом» ребенка … ermm … извините за кукурузу.

Метод getJSON довольно короткий и удобный. Посмотрите на ссылки для более подробной информации.

Для этого вам просто нужно выставить скрипт на страницу PHP, содержащую ваши данные, после чего вы можете получить доступ с любого другого Javascript на странице, включая jQuery и .ajax ().

Опять же, если вы просто хотите передать его через вызов AJAX, просто используйте json_encode ():

 <?php echo json_encode( array( 'groupidlist'=>$groupids, 'groupnamelist'=>$groupnames, 'serverurl'=>$serverurl, 'uid'=>$curuser->getID() ) ); ?> 

А затем обработайте его с помощью функций обратного вызова из .ajax() или, возможно, лучше, .getJSON() , который построен именно для этого использования.

Я обещаю, что не просто спам своего блога здесь, но я написал сообщение о передаче переменных между Javascript и PHP , потому что я делал это достаточно часто, чтобы придумать простой / надежный / чистый и многоразовый способ сделать это. Если вы регулярно передаете данные с PHP на Javascript и не нуждаетесь в AJAX, я вставлю основные сведения здесь:

В верхней части каждого внешнего js-файла я добавляю комментарии относительно того, какие переменные PHP необходимы, поэтому я могу отслеживать, что мне нужно, когда я его включаю (это необязательно, конечно, но приятно):

 /* This script depends on the following variables in phpvars: groupidlist groupnamelist serverurl uid */ 

Затем, в файле PHP, я передаю необходимые переменные с одной строкой Javascript, назначая массив JSON со всеми необходимыми значениями. Примеры в PHP, непосредственно из моего кода:

 <script type="text/javascript"> var phpvars = <?php echo json_encode( array( 'groupidlist'=>$groupids, 'groupnamelist'=>$groupnames, 'serverurl'=>$serverurl, 'uid'=>$curuser->getID() ) ); ?>; </script> 

После того, как это настроено, я могу просто получить доступ к любым переменным PHP, которые мне нужны в Javascript, через массив phpvars . Например, если мне нужно установить источник изображения с помощью my serverurl, я мог бы сделать следующее:

 imgElement.src = phpvars.serverurl + '/images/example.png'; 

Поскольку он использует JSON, не стоит беспокоиться о том, что вы не ввернете что-либо в свой Javascript, пытаясь вставить переменные PHP. Кодирование / декодирование переменных обрабатывается на обоих концах встроенными функциями JSON, поэтому очень сложно их разбить и безмозгло передать переменные – вы передаете их так же, как и любой другой массив PHP. В моей игре, которая привела к этому, у меня были проблемы с обоими из них, и это решение заботится о них красиво.

Это код файла Php

 <?php $array = array(1, 2, 3); echo json_encode($array); ?> 

Затем вы можете разбирать $array в $.ajax() как это

 success: function (data) { var x = JSON.parse(data); console.log(x); }