简体   繁体   English

表和foreach循环内的onclick事件

[英]onclick event inside table and foreach loop

I want to allow clicking on a whole host table in foreach loop in codeigniter. 我想允许在codeigniter中的foreach循环中单击整个主机表。 For some reason, the code does not work for me. 由于某种原因,该代码对我不起作用。 Do you have an idea how to fix it? 您有解决办法吗?

Thanks in advance 提前致谢

<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>

您必须将onClick =“ newDoc”分配给html元素,例如

 <table onClick="newDoc()"> 

You have to issues, one your newDoc() function is not assigned to element and two you want create the newDoc function once and only once passing in the $row->id so that its affect changes for each <tr> 您必须发出问题,一个newDoc()函数没有分配给element,而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>"; 
 }
?>

As I understand your question you want fetch click on every row. 据我了解您的问题,您想获取每一行上的单击。 then your code should be as: 那么您的代码应为:

Your Script should be out side 您的脚本应该在外面

<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>";   
      }
?>    

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM