limpopo1992
@limpopo1992

Как передать из php в javascript массив?

Здравствуйте!

Каким образом можно передать php массив в javascript?

В коде на php имеем:
$kolz5 = mysql_query("SELECT * FROM numbers") or die ("error: ".mysql_errno());
$content = array(); 
while (($row=mysql_fetch_assoc($kolz5)) !== false) { # запись запроса в массив
                        $content[] = $row ; }


в коде javascript принимаем:

alert(data);

Пробовал с помощью json_encode, но таким образом, т.к. в массиве есть текст, вместо него передается абракадабра типа u... и т.д.
  • Вопрос задан
  • 30033 просмотра
Решения вопроса 1
vyshkant
@vyshkant
developer
PHP:
$content = array('абвгд', 'abcdefg', '12345'); 
echo json_encode($content);

JS (+jQuery):
alert($.parseJSON(data));
Если у вас почему-то отображается абракадабра, то проблема точно не в JSON'е, а в кодировке.
То есть должно быть соответствие кодировки поля в таблице и кодировки html-документа (например, UTF-8):
<html>
  <head>
    <meta charset="utf-8">
  </head>
  ...
</html>

При этом в базе должно быть установлено:
Collation: utf8_general_ci
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
абракадабра типа u... и т.д.

и что? чем она тебе мешает?
Ответ написан
vahe_2000
@vahe_2000
<script type="text/javascript">
var ar = <?php echo json_encode($ar) ?>;
</script>

Функция PHP json_encode возвращает строку, содержащую JSON эквивалент стоимости переданного ей в качестве мы демонстрируем здесь с численно индексированный массив:

Или это попробуйте
<script type="text/javascript">
var fruits = <?php echo '["' . implode('", "', $fruits) . '"]' ?>;
</script>

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.
Ответ написан
miraage
@miraage
Старый прогер
// php 5.4+
json_encode($content, JSON_UNESCAPED_UNICODE | JSON_NUMERIC_CHECK);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы