javascript — событие onclick внутри таблицы и цикла foreach

Я хочу разрешить нажатие на всю таблицу хостов в цикле foreach в codeigniter. По какой-то причине код не работает для меня. У вас есть идея, как это исправить?

заранее спасибо

<table class="table table-hover">
<thead>
<tr>
<th>השולח</th>
<th>נשלחה בתאריך</th>
<th>נושא ההודעה</th>
<th>תוכן ההודעה</th>

</tr>
</thead>
<tbody><?php foreach ($messages->result() as $row)
{
?>
<script type="text/javascript">
function newDoc() {
window.location.assign("<?php echo base_url();?>/read_messages/<?php echo $row->id;?>")
}
</script>

<?php

echo "<tr>";
echo "<td>".$row->author. "</td>";
echo "<td>".$row->posted_in. "</td>";
echo "<td>".$row->title. "</td>";
echo "<td>".$row->body. "</td>";

?>

onclick="newDoc()";

<?php
echo "</tr>";
}
?>

</tbody>
</table>
</div>

0

Решение

Как я понимаю ваш вопрос, вы хотите получить клик на каждую строку. тогда ваш код должен быть таким:

Ваш сценарий должен быть вне

<script type="text/javascript">
function newDoc(id) {
window.location.assign("<?php echo base_url();?>/read_messages/"+id);
}
</script><?php foreach ($messages->result() as $row)
{
echo "<tr onclick='newDoc(".$row->id.")'>";
echo "<td>".$row->author. "</td>";
echo "<td>".$row->posted_in. "</td>";
echo "<td>".$row->title. "</td>";
echo "<td>".$row->body. "</td>";

echo "</tr>";
}
?>
0

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

Вы должны назначить onClick = «newDoc» для HTML-элемента, например

<table onClick="newDoc()">
0

У вас есть проблемы, один ваш newDoc() функция не присваивается элементу, а два вы хотите создать newDoc функционировать один раз и только один раз, передавая в $row->id так что его влияние меняется для каждого <tr>

<script type="text/javascript">
function newDoc(rowId) {
window.location.assign("<?php echo base_url();?>/read_messages/" + rowId);
}
</script>

<?php
foreach ($messages->result() as $row) {
echo "<tr  onlick='newDoc(<?php echo $row->id ?>)'>";
echo "<td>".$row->author. "</td>";
echo "<td>".$row->posted_in. "</td>";
echo "<td>".$row->title. "</td>";
echo "<td>".$row->body. "</td>";
echo "</tr>";
}
?>
0
По вопросам рекламы [email protected]