2015-05-12 2 views
2

Я рисую всю свою информацию из базы данных sql и отображаю ее в таблице в html. Я хочу, чтобы иметь возможность нажимать на кнопку в конце каждой строки или где-то в строке и отображать другой набор вещей, относящихся к уникальному идентификатору в этой строке. Однако на данный момент значение не изменяется для каждой динамически созданной кнопки.Динамически создавая кнопки в html с значением строки mysql

$sql = "SELECT * FROM Hybrid"; 
$result = mysqli_query($link, $sql); 

if ($result->num_rows > 0) { 
    echo "<table><tr><th>ID</th><th>Timestamp</th><th>Rate</th><th>Fiat</th><th>BTC</th><th>BTCadd</th><th>Contact</th><th>PaymentMethod</th><th>Bank</th><th>localprofile</th><th>BTname</th><th>uniqID</th><th>Confirm2</th><th>Paymentmade</th><th>Paymenttime</th></tr>"; 
    // output data of each row 
    while ($row = $result-> fetch_assoc()) { 
     echo "<tr><td>".$row["ID"]. 
     "</td><td>".date('d-m H:i', strtotime($row["Timestamp"])). 
     "</td><td>".$row["Rate"]. 
     "</td><td>".$row["Fiat"]. 
     "</td><td>".$row["BTC"]. 
     "</td><td>".$row["BTCadd"]. 
     "</td><td>".$row["Contact"]. 
     "</td><td>".$row["PaymentMethod"]. 
     "</td><td>".$row["Bank"]. 
     "</td><td>".$row["localprofile"]. 
     "</td><td>".$row["BTname"]. 
     "</td><td>".$row["uniqID"]. 
     "</td><td>".$row["Confirm2"]. 
     "</td><td>".$row["Paymentmade"]. 
     "</td><td>".date('d-m H:i', $row["Paymenttime"]). 
     "</td><td>". 
     "<button id='view' type='button' value='$row[uniqID]' onclick='dropdown();' >View</button>". 
     "</td></tr>"; 
    } 
    echo "</table>"; 
} 

Этот бит кнопка:

<td>" . "<button id='view' type='button' value='$row[uniqID]' onclick='dropdown();' >View</button>" . "</td> 

и $ строки [ 'uniqID'] показаны все uniqIDs на моем столе в HTML, однако, когда я пытаюсь это в JavaScript:

<script> 
    var id = document.getElementById("view").value; 

    function dropdown() { 
     alert(id); 
    }; 
</script> 

Он предупреждает только о первом $row['uniqID'], независимо от того, какую кнопку я нажимаю, вместо той, которая соответствует строке.

Мне нужно значение кнопки, чтобы соответствовать уникальному идентификатору для этой строки, поэтому я могу использовать его в функции кнопки, возможно, есть другой способ?

Я застрял в том, как это сделать, я думал, что это может быть связано с «печально известной проблемой цикла javascript», но я не уверен, применимо ли это, или если это действительно так, как это исправить?

ответ

2

id должен быть уникальным, но у вас есть число n id='view'. Так как там должен быть только 1 id='view' javascript найдет только первый. Вы можете добавить this.value к вызову функции -

"<td>" . 
"<button id='view' type='button' value='$row[uniqID]' onclick='dropdown(this.value);' >View</button>" . 
"</td>" 

, а затем использовать его в функции

<script> 
function dropdown(id){ 
    alert(id); 
} 
</script> 
+0

DON! Спасибо, ты бы этого не осознал! Очень полезно! Спасибо всем исправлено: o) – Quickcoins

Смежные вопросы