我对以下代码有问题,它希望向我显示警报!js不能从php获取文件名?为什么?首先,我创建了一个名为“txt”的文件夹,然后在其中放置了 4 个名为“a”、“b”、“c”、“d”的 txt 文件。文件被正确读取,但 java 脚本没有响应。<!doctype html><html><head><script> <!-- Get and show File NAme--> function show(x) { alert(x); }</script><meta charset="utf-8"><title>Untitled Document</title></head><body><?php $path='txt/'; $i=1; $d=opendir($path); while($f=readdir($d)) { $i++; if($f!='.' and $f!='..') { echo '<a href="#" onClick="show('.$f.')">'.$f.'</a><br/>'; } } ?> </body> </html>在控制台模式下,由于未定义文件内容(a、b、c、d)而出错!
2 回答
FFIVE
TA贡献1797条经验 获得超6个赞
您的代码将打印如下内容:
<a hre="#" onclick="show(filename)">filename</a>
onclick中的filename被视为变量名,因为您没有将其包装在字符串引号中。
所以解决方案是在 php 变量周围添加引号:
echo '<a href="#" onClick="show(\'' . $f . '\')">'.$f.'</a><br/>';
并以更易读的方式:
printf('<a href= "#" onClick="show(\'%s\');">%s</a> ', $f, $f);
最后要记住,在将数据打印到 HTML 之前,您可能需要使用htmlspecialchars。
偶然的你
TA贡献1841条经验 获得超3个赞
您可以使用此行代替您在 php 中的 echo 行
echo '<a href="#" onclick="show('."'".$f."'".')">'.$f.'</a><br/>';
它将解决问题
添加回答
举报
0/150
提交
取消