2015-02-10 52 views
-2

新增JS和PHP,並修改幻燈片腳本以動態顯示三個不同目錄的內容。簡單地說,讓事情變得簡單。將數組索引號從PHP傳遞到Javascript

一個問題我已經是我修改腳本中使用下面的靜態代碼來填充JavaScript數組:

variableslide[0]=['team_a/blank.jpg'] 
variableslide[1]=['team_a/ford.jpg'] 
variableslide[2]=['team_a/futuristic.jpg'] 
variableslide[3]=['team_a/lambo.jpg'] 

我的PHP代碼工作至今動態枚舉的目錄,然後通過結果在爲Javascript:

<?php 

// Header("content-type: application/x-javascript"); 

$team_a = array(); 
$team_b = array(); 
$team_c = array(); 
foreach (new DirectoryIterator('team_a') as $fileInfo) { 
if($fileInfo->isDot() || !$fileInfo->isFile()) continue; 
$team_a[] = "team_a".'/'.$fileInfo->getFilename(); 
} 

foreach (new DirectoryIterator('team_b/') as $fileInfo) { 
if($fileInfo->isDot() || !$fileInfo->isFile()) continue; 
$team_b[] = $fileInfo->getFilename(); 
} 

foreach (new DirectoryIterator('team_c') as $fileInfo) { 
if($fileInfo->isDot() || !$fileInfo->isFile()) continue; 
$team_c[] = $fileInfo->getFilename(); 
} 

?> 
<script type="text/javascript"> 

var variableslide = <?php echo json_encode($team_a, JSON_UNESCAPED_SLASHES) 
?> 

在Chrome當我「檢查元素」,同時運行完整的代碼,我可以看到,文件名被傳遞到JavaScript語法,但是,缺少0,1,2,3, 4等。我只能以文件路徑結束。這裏的結果:

var variableslide =  ["team_a/blank.jpg","team_a/ford.jpg","team_a/futuristic.jpg","team_a/lambo.jpg"]; 

我一直在周圍的Googling是如何獲得VAR variableslide陣列讀取,這樣的:

variableslide[0]=['team_a/blank.jpg'] 
variableslide[1]=['team_a/ford.jpg'] 

拉數組索引號和PHP文件名和填充在JS中的variableslide數組,因此它讀取與上面相同。當我從PHP腳本中輸入print_r時,它會正確顯示索引號和文本。任何人都可以幫我解決這個問題!謝謝!

+4

這些都是等效的陣列(保存,你在包裝多個陣列的陣列,爲什麼?)。 '[''','..',..]'符號只是緊湊的文字符號。 – deceze 2015-02-10 13:51:24

+0

只需按正常方式,variableslide [0] 或在Chrome控制檯中輸入variableslide [0]; 它應該返回team_a/blank.jpg或數組的第一個元素 – 2015-02-10 13:55:26

回答

0

,如果你不會它看起來像這樣

variableslide[0]=['team_a/blank.jpg'] 
variableslide[1]=['team_a/ford.jpg'] 
在php文件中使用

<script type="text/javascript"> 

<?php 
foreach($team_a as $i=>$v){ echo 'variableslide['.$i.']="'.$v.'";'."\n";} 
?> 

insetad的

<script type="text/javascript"> 

var variableslide = <?php echo json_encode($team_a, JSON_UNESCAPED_SLASHES) 
?> 

* ***只需注意的是完全一樣的東西!*

+0

嗨Federico,謝謝你的迴應,我試過了你的建議,但後來意識到你實際上不能在javascript中運行php代碼,它只是打印行作爲文本... – PossiblyInfected 2015-02-11 09:01:50

+0

我也接近以下代碼: – PossiblyInfected 2015-02-11 09:02:06

+0

// $ arraycount = count($ team_a); // $ counter =「0」; // echo「var variableslide = new Array(」。$ arraycount。「);」; // while($ counter <$ arraycount){echo「variableslide [」。$ counter。「] = ['」。$ team_a [$ counter]。「'] \ n」; $ counter ++; – PossiblyInfected 2015-02-11 09:03:16