【问题标题】:Copy a line with button of a html table with the data from the database使用数据库中的数据复制带有 html 表按钮的行
【发布时间】:2021-10-10 03:07:31
【问题描述】:

我有以下问题。我有一个表格,其中各个条目通过数据库输出。现在我想在这个表中插入一个按钮,我可以通过单击复制相应的行。我已经有一个仅适用于 html 标题但不幸的是不适用于条目的代码。如果有任何帮助或提示,我将不胜感激。

    // Ausgabe �ber eine Foreach-Schleife.
echo '<table id="tabelle" border="1" cellspacing="0" cellpadding="2" style="table-layout:fixed;">';
//echo '<tr><th style="width: 5%">Übertragen</th>'; 
echo '<tr><th style="width: 15%">Übertragen</th>';      
echo '<th style="width: 12%">Datum</th>';
echo '<th style="width: 8%">Uhrzeit</th>';
echo '<th style="width: 50%">Von</th>';
echo '<th style="width: 50%">Nach</th>';
echo '<th style="width: 7%">Pa.</th>';
echo '<th style="width: 8%">Preis</th>';
echo '<th style="width: 7%">BZ</th>';
echo '<th style="width: 25%">Kunde</th>';
echo '<th style="width: 18%">Telefonnr.</th>';
echo '<th style="width: 20%">Fahrer</th>';
echo '<th style="width: 20%">Unternehmer</th>';
echo '<th style="width: 10%">Prov.</th>';
echo '<th style="width: 50%">Nachricht</th>';
echo '<th style="width: 12%">Datum</th></tr>';
echo '</table>';
foreach ($nachrichten as $nachricht){
 echo '<table id="tabelle" border="1" cellspacing="0" cellpadding="2" style="table-layout:fixed;">';
 echo '<tr>';
    
echo '<td style="width: 15%;"><div style="width: 100%; height: 100%; overflow : auto;"><button id="copy_btn" onclick="selectElementContents( document.getElementById(`tabelle`) );">Kopieren</button></td>';   
    
      
   sscanf($nachricht->datu, "%4s-%2s-%2s", $j, $m, $t);
  echo '<td style="width: 12%"><div style="width: 100%; height: 100%; overflow : auto;">'. $t . '.' . $m . '.' . $j .'</td>';
 echo '<td style="width: 8%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->uhrzeit .'</td>';
 echo '<td style="width: 50%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->von .'</td>';
 echo '<td style="width: 50%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->nach .'</td>';
 echo '<td style="width: 7%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->personenanzahl .'</td>';
 echo '<td style="width: 8%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->preis .'</td>';
 echo '<td style="width: 7%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->bezahlart .'</td>';
 echo '<td style="width: 25%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->kunde .'</td>';
 echo '<td style="width: 18%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->telefonnummer .'</td>';
 echo '<td style="width: 20%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->fahrer .'</td>';
 echo '<td style="width: 20%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->unternehmer .'</td>';
 echo '<td style="width: 10%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->provision .'</td>';
 echo '<td style="width: 50%"><div style="width: 100%; height: 100%; overflow : auto;">'.$nachricht->nachricht .'</td></div>';
 sscanf($nachricht->datum, "%4s-%2s-%2s", $jahr, $monat, $tag);
  echo '<td style="width: 12%"><div style="width: 100%; height: 100%; overflow : auto;">'. $tag . '.' . $monat . '.' . $jahr .'</td>';
 echo '</tr>';
 echo '</table>';
}
?>    

HTML Table Picture

【问题讨论】:

    标签: javascript php


    【解决方案1】:

    在您想要复制按钮的列中添加一个按钮:

    <td…><button type=“button”
           onclick=“myCopyProc(“.$stringToBeCopied.”)”</td>
    

    然后在 myCopyProc() 函数的页眉中添加 JavaScript 代码

    <html>
        <head>
            …
            <script type="text/javascript">
        function myCopyProc(someString) {
    var copyText = someString;
    copyText.select();
    document.execCommand("copy");
    }
    </script>
            …
        </head>
    

    这个 JavaScript 代码也可以放在服务器的一个文件中。在这种情况下,您可以包含如下代码:

    <script type=“text/javascript” src=“relative path to JavaScript file”/>
    

    其他 JavaScript 代码:

    function myCopyProc( str) {
          const el = document.createElement('textarea');
         el.value = str;
         el.setAttribute('readonly', '');
         el.style.position = 'absolute';
         el.style.left = '-9999px';
         document.body.appendChild(el);
         el.select();
         document.execCommand('copy');
         document.body.removeChild(el);
    };
    

    要测试您是否输入了代码,您可以添加如下一行:

    alert(str);
    

    【讨论】:

    • 谢谢。但是头部区域中的哪个javascript?我是编程的绝对初学者。
    • 添加了复制代码:它的位置在html的头部
    • 谢谢,但它不起作用:/它什么都不做
    • 我添加了一种新的复制方式。
    • 谢谢。我将警报放入第二个代码,这是结果“function String() { [native code] }”当我按下复制按钮时,这是结果“texttocopy”而不是行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2012-12-15
    • 1970-01-01
    • 2018-03-21
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多