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

我对以下代码有问题,它希望向我显示警报!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)而出错!


有只小跳蛙
浏览 158回答 2
2回答

FFIVE

您的代码将打印如下内容:<a&nbsp;hre="#"&nbsp;onclick="show(filename)">filename</a>onclick中的filename被视为变量名,因为您没有将其包装在字符串引号中。所以解决方案是在 php 变量周围添加引号:echo&nbsp;'<a&nbsp;href="#"&nbsp;onClick="show(\''&nbsp;.&nbsp;$f&nbsp;.&nbsp;'\')">'.$f.'</a><br/>';并以更易读的方式:printf('<a&nbsp;href=&nbsp;"#"&nbsp;onClick="show(\'%s\');">%s</a>&nbsp;',&nbsp;$f,&nbsp;$f);最后要记住,在将数据打印到 HTML 之前,您可能需要使用htmlspecialchars。

偶然的你

您可以使用此行代替您在 php 中的 echo 行&nbsp;echo&nbsp;'<a&nbsp;href="#"&nbsp;onclick="show('."'".$f."'".')">'.$f.'</a><br/>';它将解决问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript