избегайте кавычек при передаче переменной в массив php

0

У меня есть (из базы данных):

<?php
$l = array();
$l['lat'] = $row['lat']; //51.507351
$l['lon'] = $row['lon']; //-0.127758
$l['animation'] = $row['animation']; //google.maps.Animation.DROP - stored without quotes in database
?>

Если я var_dump ($ l):

array(3) { ["lat"]=> string(9) "51.507351" ["lon"]=> string(9) "-0.127758" ["animation"]=> string(26) "google.maps.Animation.DROP" }

Затем "google.maps.Animation.DROP" находится в кавычках. Как этого избежать? lat и lon должны быть в кавычках. Как заставить эту анимацию не строку?

Изменить: я хочу достичь этого (используя Twig и json_encode) - google.maps.Animation.DROP, и это должно быть без кавычек:

var l = {{ l|json_encode|raw }};
$(function() {
      new Maplace({
        show_markers: true,
        locations: [l],

    }).Load();
  • 0
    Почему не должно быть кавычек? Чего ты пытаешься достичь.
  • 0
    Может потому что это строка ?!
Показать ещё 3 комментария
Теги:
arrays

2 ответа

1

Вы не можете передать ссылку на объект javascript таким образом в json, поскольку json должен быть строкой.

Мое предложение состояло в том, чтобы просто передать строку "DROP" а затем в javascript использовать [] объектную нотацию.

var animation =  google.maps.Animation[ myData.animation];

Это будет эквивалентно:

var animation =  google.maps.Animation[ "DROP"];
  • 0
    Спасибо за совет. Я постараюсь отметить, если это работает.
0

Вы все еще можете сделать это на стороне сервера, просто петля для массива и отбросить поле анимации от строки до десятичной, а затем использовать отредактированный массив, а не тот, который вы непосредственно получаете из базы данных.

Чтобы преобразовать тип из строки в float в php, вы можете использовать функцию floatval: подробности можно найти здесь:
http://php.net/manual/en/function.floatval.php

Ещё вопросы

Сообщество Overcoder
Наверх
Меню