объявление переменной javascript из значения массива php - PullRequest
0 голосов
/ 19 октября 2018

Я получил многомерный массив в php в результате запроса SQL.Меня интересует, как я могу использовать свое первое значение из массива в качестве имени новой переменной в javascript и назначить второе значение из массива в качестве значения вновь созданной переменной.

Что я пробовалэто

  foreach ($language_array as $value) {


echo "<script> var ".$value[0]." = ". $value[1]."; </script>";

}

но когда я пытаюсь использовать document.write (переменная);это то, что не определено.

 Array
(
    [0] => Array
        (
            [0] => el1
            [1] => Grouping
        )

    [1] => Array
        (
            [0] => el2
            [1] => Type
        )

    [2] => Array
        (
            [0] => el3
            [1] => Starting Date
        )

    [3] => Array
        (
            [0] => el4
            [1] => Ending Date
        )

    [4] => Array
        (
            [0] => el5
            [1] => Section
        )

    [5] => Array
        (
            [0] => el6
            [1] => Cell
        )

    [6] => Array
        (
            [0] => el7
            [1] => Client
        )

    [7] => Array
        (
            [0] => el8
            [1] => Status
        )

    [8] => Array
        (
            [0] => el9
            [1] => Article
        )

    [9] => Array
        (
            [0] => el10
            [1] => Search
        )

)

Спасибо

Эрвин

Ответы [ 3 ]

0 голосов
/ 19 октября 2018
  1. Не испускайте отдельный тег <script> для каждой переменной, вместо этого - испускайте <script> теги только один раз до / после цикла

  2. Теперь какэто - правая часть присваивания интерпретируется как другое имя переменной, а не как значение, поэтому вы получаете неопределенное значение.Вам не хватает кавычек для значений строковых переменных

Фиксированный код:

$language_array = [
         [ 'el1',  '"Grouping"'],
         [ 'el2', '"Type"' ],
         [ 'el3', '"Starting Date"'],
         [ 'el4', '"Ending Date"'],
         [ 'el5', '"Section"']
        ]; 

        echo "<script>";
        foreach ($language_array as $value) {
          echo "var ".$value[0]." = ". $value[1].";";
          echo "document.write({$value[0]}+'<br>');";
        }
        echo "</script>";
0 голосов
/ 20 октября 2018

Вы пишете скрипт вроде:

<script> var el1 = Grouping; </script>

Это попытается использовать Grouping в качестве переменной, но вы хотите, чтобы она была литеральной строкой.

Вы должныиспользуйте json_encode() для преобразования $value[1] в литерал JavaScript.В случае строки PHP она добавит необходимые кавычки.

foreach ($language_array as $value) {
    echo "<script> var ".$value[0]." = ". json_encode($value[1]) ."; </script>";
}

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

0 голосов
/ 19 октября 2018

Можете ли вы использовать Alert (переменную) вместо documentmenti.write ... потому что когда мы помещаем document.write () внутри функции.При вызове функции все элементы HTML будут перезаписаны и заменены новым указанным текстом ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...