为了账号安全,请及时绑定邮箱和手机立即绑定

用php发送文件名并用js处理

用php发送文件名并用js处理

有只小跳蛙 2021-11-25 16:44:16
我对以下代码有问题,它希望向我显示警报!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


查看完整回答
反对 回复 2021-11-25
?
偶然的你

TA贡献1841条经验 获得超3个赞

您可以使用此行代替您在 php 中的 echo 行

 echo '<a href="#" onclick="show('."'".$f."'".')">'.$f.'</a><br/>';

它将解决问题


查看完整回答
反对 回复 2021-11-25
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信