簡體   English   中英

如何使用JavaScript在echo中轉義php代碼

[英]how to escape php code in echo with javascript

我怎么能逃脫這個: var tab_mois_nb_match = <?php ".json_encode($tab_mois_nb_match)." ;?> ; var tab_mois_nb_match = <?php ".json_encode($tab_mois_nb_match)." ;?> ;

我有一個代碼錯誤,但是在conle.log中生成帶有錯誤的數組,這完全是瘋狂的。

 foreach($tab_bases2 as $key => $univers){              
            $tab_nb_match_par_user = users_nb_match($univers);
            $tab_mois_nb_match = mois_nb_match($univers);

            echo "<div id='".$univers."' ></div>";
            echo "<script type='text/JavaScript'> 
                    var tab_mois_nb_match = <?php ".json_encode($tab_mois_nb_match)." ;?> ;
                    var line3 = [];tab_date = [];
                    for(var v in tab_mois_nb_match){
                        line3.push([v,Number(tab_mois_nb_match[v])]);
                        tab_date.push(v[0]+v[1]+v[2]+v[3]);
                    }
                    console.log(tab_mois_nb_match);
                  </script>";
         }

您正在將內聯PHP與PHP命令(echo)混合在一起。

當您回顯字符串時,您可以像平常一樣執行此操作,這意味着您可以混合使用文字字符串(您正在手動鍵入的js)和函數的輸出(在這種情況下為json):

echo "<script type='text/JavaScript'> 
                var tab_mois_nb_match = ".json_encode($tab_mois_nb_match)." ;
                var line3 = [];tab_date = [];
                for(var v in tab_mois_nb_match){
                    line3.push([v,Number(tab_mois_nb_match[v])]);
                    tab_date.push(v[0]+v[1]+v[2]+v[3]);
                }
                console.log(tab_mois_nb_match);
              </script>";

字符串是字符串。

編輯:不過,在該注釋上,我應該補充一點,如果您需要在插入字符串之前進行評估,只需在括號周圍放一些括號即可。

echo "<script type='text/JavaScript'> 
                var tab_mois_nb_match = ".(json_encode($tab_mois_nb_match)+4)." ;
                var line3 = [];tab_date = [];
                for(var v in tab_mois_nb_match){
                    line3.push([v,Number(tab_mois_nb_match[v])]);
                    tab_date.push(v[0]+v[1]+v[2]+v[3]);
                }
                console.log(tab_mois_nb_match);
              </script>";

好的,所以+4是一個不好的例子,但是舉例來說,您需要將一個函數的輸出插入另一個函數中……方括號就是解決問題的方法。

最后,並非所有功能都將像這樣工作。 有時,您只需要將函數的輸出保存到變量中,然后將變量插入字符串中即可。

您不能在php中聲明php。

您可以通過兩種方式編寫代碼:

第一種方法:

 foreach($tab_bases2 as $key => $univers){              
        $tab_nb_match_par_user = users_nb_match($univers);
        $tab_mois_nb_match = mois_nb_match($univers);

        echo "<div id='".$univers."' ></div>";
?>


<script type='text/JavaScript'> 
                var tab_mois_nb_match = <?php json_encode($tab_mois_nb_match) ;?> ;
                var line3 = [];tab_date = [];
                for(var v in tab_mois_nb_match){
                    line3.push([v,Number(tab_mois_nb_match[v])]);
                    tab_date.push(v[0]+v[1]+v[2]+v[3]);
                }
                console.log(tab_mois_nb_match);
              </script>

<?php                  
     }
?>

第二種方法

foreach($tab_bases2 as $key => $univers){              
        $tab_nb_match_par_user = users_nb_match($univers);
        $tab_mois_nb_match = mois_nb_match($univers);

        echo "<div id='".$univers."' ></div>";
        echo "<script type='text/JavaScript'> 
                var tab_mois_nb_match = ".json_encode($tab_mois_nb_match)."  ;
                var line3 = [];tab_date = [];
                for(var v in tab_mois_nb_match){
                    line3.push([v,Number(tab_mois_nb_match[v])]);
                    tab_date.push(v[0]+v[1]+v[2]+v[3]);
                }
                console.log(tab_mois_nb_match);
              </script>";
     }

暫無
暫無

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

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