PHP и Javascript: несколько кнопок внутри таблицы

Я работаю с 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]'>&nbsp$row[5]</td>";
echo "<td>$row[4]&nbspmin(s)</td>";
echo "<td><img src='/iframe/$row[6]'>&nbsp$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>";

0

Решение

Вы идентификаторы ваших элементов дом должны быть уникальными в любое время. Для этого вы можете добавить счетчик в свое время, чтобы все ваши кнопки имели идентификаторы, такие как «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]'>&nbsp$row[5]</td>";
echo "<td>$row[4]&nbspmin(s)</td>";
echo "<td><img src='/iframe/$row[6]'>&nbsp$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

надеюсь это поможет!

0

Другие решения

echo "<td><a href='/user'><button class='small pill green'>$row[0]</button></a></td>";

…сделает свое дело.

0