I have a SQL-query in a WHILE loop that creates multiple table rows. One cell has an input field with an id named after sql row ($row2['ticketid']).
I also have a button being created at the end of each row which is supposed to copy the text from the input field.
My javascript-code copies only the last instance of the row. Putting it outside the loop makes it copy only the first instance..
<script>
function myFunction() {
/* Get the text field */
var copyText = document.getElementById('<? echo $row2['ticketid'];?>');
/* Select the text field */
copyText.select();
copyText.setSelectionRange(0, 99999); /*For mobile devices*/
/* Copy the text inside the text field */
document.execCommand("copy");
/* Alert the copied text */
alert("Ticket-ID kopiert: " + copyText.value);
}
</script>
I want each button to copy the text from the input field from the same row to which the button belongs.
This is my code so far:
<table class="some_style" style="font-size:15pt;border-collapse: collapse;overflow:hidden;">
<tr>
<th style="width:70px;border-bottom:1px solid silver;text-align:center;color:black;">
<font size="2">Art:</font>
</th>
<th style="width:300px;border-bottom:1px solid silver;text-align:center;color:black;">
</th>
<th style="width:300px;border-bottom:1px solid silver;text-align:left;color:black;">
<font size="2">Ticket-ID:</font>
</th>
<th style="width:100px;border-bottom:1px solid silver;color:black;">
<font size="2">Status:</font>
</th>
<th style="width:80px;border-bottom:1px solid silver;color:black;">
<font size="2">Aktion:</font>
</th>
</tr>
<?
$sql2="SELECT * FROM tickets WHERE user='$login'";
$result2 = mysqli_query($con,$sql2);
$y=0;
$helper2=array();
while($row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC)) {
$str="";
if ($row2['itemid'] == 1) {$str="Ticket";}
if ($row2['itemid'] == 2) {$str="Rotes Ticket";}
if ($row2['itemid'] == 3) {$str="Blaues Ticket";}
if ($row2['itemid'] == 4) {$str="Billet";}
$str2="";
if ($row2['red'] == 0) {$str2="Nicht eingelöst";}
if ($row2['red'] == 1) {$str2="Eingelöst";}
?>
<tr>
<th style="width:70;text-align:left;background-color:snow;">
<font size="2" style="font-weight:normal;text-align:left;background-color:snow;"><img src="app/tickets/<? echo $row2['itemid']; ?>.png" width="50" height="41"></font>
</th>
<th style="width:300px;text-align:left;font-size:14pt;background-color:snow;padding-left:5px;">
<font style="font-weight:normal;"><? echo $str; ?></font>
</th>
<th style="width:300px;background-color:snow;text-align:left;">
<font style="font-weight:normal;font-size:14pt;"><input style="width:300px;background-color:snow;border:0px;text-align:left;" type="text" readonly value="<? echo $row2['ticketid']; // etc.. ?>" id="<? echo $row2['ticketid'];?>"></font>
</th>
<th style="width:200px;background-color:snow;">
<font style="font-weight:normal;text-align:left;font-size:10pt;"><? echo $str2; // etc.. ?></font></th>
<th style="width:80px;color:black;">
<button onclick="myFunction()" style="width:80px;font-size:10pt;background-color:white;border-radius:5px;height:30px;border:1px solid black;" onmouseover='this.style.backgroundColor = "silver"' onmouseout='this.style.backgroundColor = "white"' >Kopieren</button>
</th><script>
function myFunction() {
/* Get the text field */
var copyText = document.getElementById('<? echo $row2['ticketid'];?>');
/* Select the text field */
copyText.select();
copyText.setSelectionRange(0, 99999); /*For mobile devices*/
/* Copy the text inside the text field */
document.execCommand("copy");
/* Alert the copied text */
alert("Ticket-ID kopiert: " + copyText.value);
}
</script>
<?
$y++;
}
?>
</table>