2015-07-09 150 views
-4

我得到了如下代碼:JavaScript警告動態創建變量名

var image1 = 'aaa.jpg'; 
var image2 = 'bbb.jpg'; 
var image3 = 'ccc.jpg'; 
var image4 = 'ddd.jpg'; // all dynmically created 

current = 1; // dynamically changing value, in this case between 1 and 4 

我現在需要的是提醒alert(image1);,但在這條路上:alert(image + current);

它甚至有可能這樣?我希望我能清楚地解釋我需要什麼。

+0

這就是一個很好的解決方案傑克,不容易用PHP創建,但可以工作:D – donbingo

+0

如何使用PHP創建變量?看起來有點像[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – insertusernamehere

+0

像這樣:

0

從我所看到的,我認爲你已經走上了正確的道路。但這裏有一些事情要考慮...

  1. 加上引號動態創建變量來使他們的字符串:

var image1 = 'aaa.jpg';

  • 當你把警告框放在引號中也會用'image'這個詞。這樣,這將是一個字符串太:
  • alert(eval('image'+current));

  • 的警告框不會實際顯示圖像。它只會顯示存儲在變量中的圖像的名稱。我認爲這就是你要做的。
  • 祝你好運!

    我看到你編輯了問題,把它放在引號中的動態變量。做得好。

    +0

    1:我做了oO 2:它警告「image1」,但不是image1的值3:wth xD – donbingo

    0

    我解決它的方法之一用戶發佈,並刪除他的答案(爲什麼?):

    alert(eval('image'+current)); 
    
    0

    因爲它在意見建議和根據您的PHP代碼評論:創建一個JavaScript數組來存儲您的數據,而不是創建大量變量。你可以完成它,例如像這樣:

    創建一個包含所有圖像

    <?php 
        $images = ''; 
        while($row = mysqli_fetch_assoc($result)) { 
         $images .= ($images ? ',' : '') . '"' . $row['image'] . '"'; 
        } 
    ?> 
    

    輸出

    var images = [<?php print $images; ?>]; 
    alert (images[0]); 
    
    0

    你顯然與收集工作的字符串,所以你應該創建在這種情況下的陣列結構:

    <?php 
    
    $images = []; 
    while ($row = mysqli_fetch_assoc($ergebnis)) { 
        $images[] = $row['image']; 
    } 
    
    ?> 
    <script type="text/javascript"> 
    var images = <?php echo json_encode($images) ?>; 
    </script> 
    

    然後,您可以通過(例如)參考每個圖像路徑。 images[0]