Я работаю с PHP, Javascript и MySQL. Моя цель — иметь кнопку в каждом ряду. Кнопка должна вызвать функцию onclick и перейти к другой странице.
Моя проблема с моим кодом -> кликает только кнопка из первого ряда …
Я предполагаю, что идентификатор кнопки должен быть уникальным для каждой кнопки. Какие есть варианты, чтобы сделать все кнопки кликабельными?
// printing table rows
while($row = mysqli_fetch_row($result))
{
echo "<tr>";
echo "<td><button id='greenbutton' class='small pill green'>$row[0]</button></td>";
echo "<td><img src='/iframe/$row[7]'> $row[5]</td>";
echo "<td>$row[4] min(s)</td>";
echo "<td><img src='/iframe/$row[6]'> $row[2]</td>";
if ($row[3] == 0) {
echo "<td>Unknown</td>";
}
else {echo "<td>$row[3]</td>";}
echo "</tr>\n";
// FOR ONCLICK
echo "<script type='text/javascript'>";
echo "document.getElementById('greenbutton').onclick = function () {";
echo "location.href = '/user';";
echo "};";
echo "</script>";}
echo "</table></center>";
Вы идентификаторы ваших элементов дом должны быть уникальными в любое время. Для этого вы можете добавить счетчик в свое время, чтобы все ваши кнопки имели идентификаторы, такие как «greenbutton1», «greenbutton2», «greenbutton3» и т. Д.
$cnt = 1;
// printing table rows
while($row = mysqli_fetch_row($result))
{
echo "<tr>";
echo "<td><button id='greenbutton$cnt' class='small pill green'>$row[0]</button></td>";
echo "<td><img src='/iframe/$row[7]'> $row[5]</td>";
echo "<td>$row[4] min(s)</td>";
echo "<td><img src='/iframe/$row[6]'> $row[2]</td>";
if ($row[3] == 0) {
echo "<td>Unknown</td>";
}
else {echo "<td>$row[3]</td>";}
echo "</tr>\n";
$cnt++;
}
echo "</table></center>";
В этом примере я не добавил вашу функцию javascript в ваш цикл while, потому что она выглядит как одна и та же функция для всех ваших кнопок. Я предлагаю вам добавить функцию только один раз, но связать ее с селектором класса вместо селектора идентификатора, как это.
// FOR ONCLICK
echo "<script type='text/javascript'>";
echo "document.getElementsByClassName('myGreenButtons').onclick = function () {";
echo "location.href = '/user';";
echo "};";
echo "</script>";
А затем добавьте класс myGreenButtons к вашим кнопкам в цикле while. Вы также можете использовать атрибуты или селектор типов для более гибкого сбора элементов dom. Проверьте тезисы ссылки для получения дополнительной информации:
http://www.w3schools.com/cssref/css_selectors.asp
http://www.htmlgoodies.com/beyond/javascript/using-javascripts-css3-selectors.html#fbid=FhIuAA6GqpH
надеюсь это поможет!
echo "<td><a href='/user'><button class='small pill green'>$row[0]</button></a></td>";
…сделает свое дело.