Array为同一索引返回2个不同的值

时间:2013-01-11 21:25:12

标签: php arrays variables onclick echo

我有以下PHP代码:

$Directory = "somepath/somedirectory/";
$Files = glob($Directory . "*.jpg");
for ($i = 0; $i < count($Files); $i++) {
    echo ('<img src="' . $Files[$i] . '"/>');
}

我得到的:

<img src="somepath/somedirectory/00.jpg"/>
<img src="somepath/somedirectory/01.jpg"/>
<img src="somepath/somedirectory/02.jpg"/>
//etc...

这里一切都很好。 但是我有一个onclick(),假设使用相同的变量“$ Files [$ i]”,就像这样:

$Directory = "somepath/somedirectory/";
$Files = glob($Directory . "*.jpg");
for ($i = 0; $i < count($Files); $i++) {
    echo ('<img src="' . $Files[$i] . '" onclick="ChangeImage("' . $Files[$i] . '")"/>');
}

我明白了:

<img 00.jpg")"="" somedirectory="" somepath=""  onclick="ChangeImage(" src="somepath/somedirectory//00.jpg">
<img 01.jpg")"="" somedirectory="" somepath=""  onclick="ChangeImage(" src="somepath/somedirectory//01.jpg">
//etc...

发生了什么事? 为什么这个结果?

我想要的是:

<img src="somepath/somedirectory/00.jpg" onclick=("somepath/somedirectory/00.jpg")/>
<img src="somepath/somedirectory/01.jpg" onclick=("somepath/somedirectory/01.jpg")/>
//etc...

2 个答案:

答案 0 :(得分:3)

糟糕的引用,试试这个

echo '<img src="'.$Files[$i].'" onclick="ChangeImage("'.$Files[$i].'")"/>';

答案 1 :(得分:0)

好的,我终于找到了解决方案。

最重要的是,我应该一直在寻找的是:

onclick="ChangeImage('somepath/somedirectory/00.jpg')"

而不是:

onclick="ChangeImage("somepath/somedirectory/00.jpg")"

所以我最终得到了这段代码:

echo ('<img src="' . $Files[$i] . '" onclick="ChangeImage(&#39;' . $Files[$i] . '&#39;)"/>');

它现在可以工作了。