javascript
  • php
  • 2017-03-09 75 views 1 likes 
    1

    我嘗試了很多方法來做到這一點,但沒有結果。我有5個PHP變量,$menu1$menu5評估爲關鍵字。我試圖在JavaScript中填充這5個php變量並顯示它。下面的代碼不起作用。處理php變量的部分有什麼問題?如何使用動態js變量解析php變量?

    var menu_populator = ""; 
    for (var x = 1; x <= count; x++) { 
        menu_populator += '<li><a class="myclass" href="#link">' + '<?php echo $menu' + x + '?>' + '</a></li>'; 
    } 
    $('#nav_menu').html(menu_populator); 
    
    +0

    這個代碼塊在哪裏?因爲PHP不會運行在js文件 –

    +0

    它在php文件的腳本標記內。 – schenker

    +0

    我可以想出幾種不同的方法來完成這項工作。只是好奇是'count'被定義.... – NewToJS

    回答

    1

    取決於你是如何獲取菜單數據服務器端,你可以試試以下兩種方法。一個是設置$menu變量,但如果從數據庫獲取數據或在循環內創建$menu變量,則可能會發現第二種方法更好。

    方法單PasteBin

    回聲你的PHP變量到JavaScript數組。

    var myarray=["<?php echo $menu1;?>","<?php echo $menu2;?>","<?php echo $menu3;?>","<?php echo $menu4;?>","<?php echo $menu5;?>"]; 
    

    方法二PasteBin

    創建數組服務器端,這將是更好,如果你正在創建一個循環的電流$menu變量,這個你可以只使用array_push()來將值推入數組中。

    <?php 
    // PHP Array 
    $menu = array('Home', 'Gallery', 'About'); 
    // How to push new item into array 
    array_push($menu, 'Contact'); 
    ?> 
    

    然後,只需簡單地echo這個數組到你的JavaScript myarray變量。

    var myarray=<?php echo json_encode($menu);?>; 
    

    我用下面的JavaScript來測試這兩種方法,並似乎都運作得很好。我更喜歡第二種方法,但我決定提供這兩種方法,因爲我不知道你的PHP是什麼樣的,或者你的變量是如何定義的,所以這應該包括這兩種方法。

    window.onload=function(){ 
    for(var i=0; i<myarray.length; i++){ 
        var link= document.createElement('a'); 
        link.href="#"; 
        link.innerHTML=myarray[i]; 
        document.body.appendChild(link); 
        document.body.appendChild(document.createElement('br')); 
    } 
    } 
    

    如果您對上面的源代碼有任何疑問,請在下面留言,我會盡快回復您。

    我希望這個幫助。快樂的編碼!

    +0

    方法1看起來很有希望,讓我看看它是否有效。非常感謝你的幫助。 – schenker

    +1

    @schenker非常歡迎。如果您有任何問題,請告訴我,我會看看我是否有任何進一步的幫助。 – NewToJS

    0

    像這樣的事情會做的伎倆

    <?php 
    $menu = "menu"; 
    echo ' 
    
    <script> 
        var count = 10; 
        var menu_populator=""; 
        for(var x=1;x<=count;x++) 
        { 
         menu_populator += \'<li><a class="myclass" href="#link">'.$menu.' \'+x+\'</a></li>\'; 
        } 
        $(\'#nav_menu\').html(menu_populator); 
    </script> 
    
    '; 
    ?> 
    
    相關問題