Using GetElementById in PHP loop

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • prosad
    New Member
    • Jul 2007
    • 27

    Using GetElementById in PHP loop

    hi,
    I will like to use javascript GetElementById in a PHP for loop whereby the ids are generated as the loop executes and not fixed ids as in the example below. Therefore function displayRow() once executed will collapse all cells with ids variably assigned on looping. thus i will have $i or a variable id instead of captionRow, captionRow2 etc.

    Code:
    function displayRow(){
    
          var col = document.getElementById("captionRow");
    
          if (col.style.display == '') col.style.display = 'none';
    
          else col.style.display = '';
    
          var col2 = document.getElementById("captionRow2");
    
          if (col2.style.display == '') col2.style.display = 'none';
    
          else col2.style.display = '';
    
          var col3 = document.getElementById("captionRow3");
    
          if (col3.style.display == '') col3.style.display = 'none';
    
          else col3.style.display = '';
    
    
          }
    [HTML]
    <table width="300" border="1">


    <th class = 'hr' id="captionRow" >TH-1</th><th>TH-2</th><th>TH-3</th></tr>

    <tr><td class = 'hr' id="captionRow2 ">cell-11</td><td>cell-12</td><td>cell-13</td></tr>

    <tr><td class = 'hr' id="captionRow3 ">cell-21</td><td>cell-22</td><td>cell-23</td></tr>

    </table>

    <p><button onclick="displa yRow()" >Show / Hide</button></p>

    </body>

    </html>
    [/HTML]

    thanks in advance
  • RamananKalirajan
    Contributor
    • Mar 2008
    • 608

    #2
    You are creating the Table rows dynamically and once the dynamicRow() function has been called all the row element has to be made invisible. The Id's are generated at run time and u want that to be controlled through loop. are u creating the dynamic elements by DOM. wether u have tried any code for that. If so please post it

    Regards
    Ramanan Kalirajan

    Comment

    • acoder
      Recognized Expert MVP
      • Nov 2006
      • 16032

      #3
      You don't even need PHP. This could be done entirely in JavaScript. Get the number of rows in the table and use a for loop in JavaScript, then something like:
      [code=javascript]var col = document.getEle mentById("capti onRow"+i);[/code]

      Comment

      • prosad
        New Member
        • Jul 2007
        • 27

        #4
        hi,
        what am trying to achieve is hide all cells/<td> with view, edit or delete actions (that will be 3 columns) so that on preview of this table these cells will not be visisble.Am trying to give these cells (view, edit, delete) ids so that on click of a button i can hide or display them. Here's the code, thanks:

        [PHP]for ($i = $startrec; $i < $reccount; $i++)
        {
        $row = mysql_fetch_ass oc($res);
        $style = "dr";
        if ($i % 2 != 0) {
        $style = "sr";
        }

        ?>[/PHP]

        [HTML]<tr>
        <td class="<?php echo $style ?>"><a href="analysis. php?a=view&reci d=<?php echo $i ?>">View</a></td>
        <td class="<?php echo $style ?>"><a href="analysis. php?a=edit&reci d=<?php echo $i ?>">Edit</a></td>
        <td class="<?php echo $style ?>"><a href="analysis. php?a=del&recid =<?php echo $i ?>">Delete</a></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["lp_client"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["lp_assign"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["year_end"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["prepared"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["received"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["schedule"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["date_from"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["date_to"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["date"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["part"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["amount"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["desc"]) ?></td>
        <td class="<?php echo $style ?>"><?php echo htmlspecialchar s($row["remark"]) ?></td>
        </tr>[/HTML]

        [PHP]
        <?php
        }
        mysql_free_resu lt($res);[/PHP]

        Comment

        • acoder
          Recognized Expert MVP
          • Nov 2006
          • 16032

          #5
          PHP won't run once the page has loaded. If you need to hide columns on clicking a button, use JavaScript only. What you can do is use PHP to generate the IDs and JavaScript code.

          Comment

          Working...