簡體   English   中英

php數組值中的javascript變量聲明

[英]javascript variable declaration from php array value

我從sql查詢中得到了php中的多維數組。 我很感興趣如何將數組中的第一個值用作javascript中新變量的名稱,並將數組中的第二個值分配為新創建的變量的值。

我試過的是這個

  foreach ($language_array as $value) {


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

}

但是當我嘗試document.write(variable); 那是不確定的。

 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
        )

)

謝謝

歐文

您是否可以使用Alert(variable)代替documenti.write ...,因為當我們將document.write()放在函數中時。 調用該函數時,所有HTML元素都將被覆蓋,並替換為新的指定文本...

  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>";

您正在編寫如下腳本:

<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>";
}

就像另一個答案所說的那樣,雖然我認為它實際上不會在處理方式上有很大的不同,但是沒有必要將每個變量放在自己的腳本中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM