douaoj0994 2014-09-08 17:22
浏览 57
已采纳

HTML表和内部按钮调用Javascript函数

I have created a table as such in file1.php:

<table id="myTable" style="width:100%;">
    <tr>
      <td><?php echo $string1; ?></td>
      <td><?php echo $string2; ?></td>
      <td><?php echo $string3; ?></td>
      <td><?php echo $string4; ?></td>
      <td><?php echo $string5; ?></td>
    <tr>

  <?php
  if(file_exists($filesDir))
  {
     foreach (new DirectoryIterator($filesDir) as $file)
     {
        if((htmlentities($file) !== ".") && (htmlentities($file) !== ".."))
        {
          /* get the file name, creation date and size */
          $filename = htmlentities($file);
          $filecdate = date("d-m-Y H:i:s", filectime($filesDir.$file));
          $filesize = filesize($filesDir.$file) /(pow(1024, 2));
        ?>
          <tr>
            <!-- print filename -->
            <td><?php echo $filename; ?></td>
            <!-- print file creation date -->
            <td><?php echo $filecdate; ?></td>
            <!-- print filesize -->
            <td><?php echo number_format($filesize, 2, '.', '\'')." MB"; ?></td>

            <!-- print button #1 -->
            <td> <?php echo "<input type=\"button\" value=\"D\" onClick=\"downloadFile($filename)\"/>"; ?> </td>

            <!-- print button #2 -->
            <td> <?php echo "<input type=\"button\" value=\"X\" onClick=\"eraseFile($filename)\"/>"; ?> </td>
          </tr>
        <?php
        }
     }
  }
  ?>
  </table>

And I have written a Javascript function in another js file:

function downloadFile(filename)
{
  $("#activity").html("<img src=\"imagenes/indicator.gif\" style=\"left: 590px;top: 74px;margin: auto;position: absolute;width: 32px;height: 32px;\" />");

    window.location.href = "file3.php?filename=" + filename;
}

Finally, in a PHP file called file3.php I use the filename value obtained with the downloadFile function, as so:

if(isset($_GET["filename"]))
{
  $filename = $_GET["filename"];

  if(file_exists($filesFolder.$filename))
  {
    set_time_limit(0);
    ob_start();
    //header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    //header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename='.basename($filename));
    //header('Content-Transfer-Encoding: binary');
    header('Expires: 5');
    header('Cache-Control: must-revalidate');
    //header('Pragma: public');
    header('Content-Length: ' . filesize($filesFolder.$filename));
    readfile($filesFolder.$filename);
    ob_end_flush();
    exit;
  }

But when I click the button from file1.php the Javascript function is not executed. Could you please help to understand where I am wrong?

  • 写回答

2条回答 默认 最新

  • dskpywvki951583595 2014-09-08 17:44
    关注

    Your $filename var will be a string. So try to add quotes.

    onClick=\"downloadFile('$filename')\"
    

    I'm not sure this is the only error, but I'm sure this is one.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持