2015-02-10 53 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