按钮不起作用

时间:2017-03-25 13:11:03

标签: php html

我想创建一个复制目录地址的按钮。 但是通过使用以下代码,我只获得final_array中第一项的值。

<html>
<head>
    <title>Directory Listing</title>
    <script>
        function copyToClipboard(text) {
            window.prompt("Copy to clipboard: Ctrl+C, Enter", text);
        }
    </script> 
</head>
<body>

    <?php
    $root = 'MyPictures/';

    $iter = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($root,         RecursiveDirectoryIterator::SKIP_DOTS),
        RecursiveIteratorIterator::SELF_FIRST,
        RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied"
        );

    $paths = array($root);
    foreach ($iter as $path => $dir) {
        if ($dir->isDir()) {
            $paths[] = $path;
        }
    }
    $count = sizeof($paths);

    $new_arr;
    $final_arr;

    for($i=2;$i<$count;$i++) {
        $new_arr[$i] =  str_replace("MyPictures","", $paths[$i]);
        $final_arr[$i] = str_replace("\\","/", $new_arr[$i]);

        echo '<br>';
        echo '<button id="demo" onclick="copyToClipboard(document.getElementById(' . "'demo'" . ').innerHTML)">' . $final_arr[$i] . '</button>';    
        echo  '<br>';
    } 
    ?>

</body>
</html>

就像单击任何按钮一样,我在复制对话框中获得第一个元素。

1 个答案:

答案 0 :(得分:0)

首先,您使用ID来指定标记,ID在文档中必须是唯一的,这是DOM的基础。

所以,这一行:

echo '<button id="demo" onclick="copyToClipboard(document.getElementById(' . "'demo'" . ').innerHTML)">' . $final_arr[$i] . '</button>';

应该有唯一ID而不是静态demo id, OR 只需使用class,如下所示:

echo '<button class="demo" onclick="copyToClipboard(document.getElementById(' . "'demo'" . ').innerHTML)">' . $final_arr[$i] . '</button>';

第二部分:

您可以使用this对象相对传递HTML DOM元素,如下所示:

echo '<button id="demo_'.$i.'" onclick="copyToClipboard(document.getElementById(this.id).innerHTML)">' . $final_arr[$i] . '</button>';