0

Is there is a way to print a HTML form on each row of a table in such a way that the form should have a that particular row id.

I have a php for loop. The for loop fetch the data from the database and put it into the table. Each row of the table have a button. When we click on the button a form appears. But the problem is that no matter which row button I click each form will have the same row Id. sample images are attached below:

Some One told me to use data-id="" and then $(this).attr('data-id')in my click event but i am not sure how to use it

No matter which row submit button I click the Row id is same: enter image description here

my code:

    <thead>
          <tr>
            <th class="active1">ID</th>
            <th>Title</th>
            <th>Description</th>
            <th>Critility</th>
            <th>Priority</th>
            <th>Date Submitted</th>
            <th>Submittions</th>
          </tr>
 </thead>
          <?php
          foreach($results as $data){
          echo '<tbody>
                  <div class="tryinglift"><tr class="dropDown">
                  <td><div class="bn">#'.$data['NO'].'</div></td>
                  <td><div class="titleInTable truncatee">'.$data['Title'].'<div></td>
                  <td><div class="truncate">'.$data['Description'].'</div></td>
                  <td><div class="c">'.$data['criticality'].'</div></td>
                  <td><div class="c">'.$data['Priority'].'</div></td>
                  <td>'.$data['Date_Submitted'].'</td>
                  <td><button class="showPop" class="btn btn-primary btn-small">SUBMIT</button></td>

              </tr></div>
            <div id="overlay"></div>
            <div id="specialBox">
         <form action="php/inbetween.php" method="POST" class="submittion_from">
            <fieldset class="removeGender1">
                <label>NO</label> 
                <label >YES</label>    
                </fieldset><br>
                <input type="text" name="id" value='.$data['no'].'>
                 <fieldset class="removeGender">
                      <label>xyz questions</label>
                            <input type="radio" name="optradio" value="NO">     
                            <input type="radio" name="optradio" value="YES">
                </fieldset><br>
                <fieldset class="removeGender">
                     <label>xyz questuion</label>
                            <input type="radio" name="optradio1" value="NO">  
                            <input type="radio" name="optradio1" value="YES">
               </fieldset><br>
               <fieldset class="removeGender">
                      <label>xyz questions</label>
                            <input type="radio" name="optradio2" value="NO">                           
                            <input type="radio" name="optradio2" value="YES">
              </fieldset><br>
          <input type="submit" value="SUBMIT" id="no">
    </form>
                <button class="closePop">Close Overlay</button>
        </div>
            </tbody>';
           echo '<div id="style1">
                    <div>'.$data['Description'].'</div>
            </div>';

          }  


    ?>

My jQuery:

    $(".showPop").click(function(){
    $("#overlay").css({"display":"block"});
    $("#specialBox").css({"display":"block"}); 
});
$(".closePop").click(function(){
   $("#overlay").css({"display":"none"});
    $("#specialBox").css({"display":"none"}); 
});
Sach jot
  • 160
  • 1
  • 15
  • You have a number of problems. Inside of your loop you echo out ID values, so you have duplicate IDs throughout your page. This is invalid markup, and causes you to always see the same popup. You also do things like write `
    ` tags inside of `` tags, which is also invalid markup. I'd **strongly** recommend separating out your presentation logic (your table) from the underlying code, so that you don't confuse yourself in this regard.
    – Obsidian Age Feb 12 '18 at 20:16
  • Please do not repost. – Jay Blanchard Feb 12 '18 at 20:20

0 Answers0