2016-05-18 3 views
0

Ich habe eine Tabelle, die Mitarbeiter verlassen Datensatz und Status. Jeder Datensatz hat eine eindeutige Abwesenheits-ID. Ich möchte die Abwesenheits-ID und den Status jeder Zeile anzeigen, indem ich auf die modale Schaltfläche "Ansicht" klicke. Alle Schaltflächen zeigen jedoch die Daten der ersten Zeile aus der Datenbank an. Wie mache ich jede Taste entspricht ihrer Abwesenheit ID-Nummer in jeder Zeile. Bitte helfen Sie. Ich bin super Neuling hier. LOL. Jede Hilfe würde sehr geschätzt werden. Danke im Voraus.Wie bekomme ich Wert auf eine bestimmte Zeile in HTML-Tabelle mit modal und PHP

<!DOCTYPE html> 
<html> 
     <h2>Employee Leaves</h2> 
<?php 

$mysql_hostname = "localhost"; 
$mysql_user = "root"; 
$mysql_password =""; 
$mysql_database = "employeerecord"; 

// Create connection 
$conn = new mysqli($mysql_hostname, $mysql_user, $mysql_password, $mysql_database); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sqli = "SELECT emp_id, leave_id, last_name, first_name, leave_type, start_date, end_date, comment, date_filed, time_filed, status FROM leaves"; 
$result = $conn->query($sqli); 


if ($result->num_rows > 0) { ?> 
    <table class="table"> 
    <thead> 
     <tr> 
      <th>ID Number</th> 
      <th>Lastname</th> 
      <th>Firstname</th> 
      <th>Leave Type</th> 
      <th>Start Date</th> 
      <th>End Date</th> 
      <th>Comment</th> 
      <th>Date Filed</th> 
      <th>Time Filed</th> 
      <th>Status</th> 
      <th>Leave ID</th> 
      <th></th> 
     </tr> 
    </thead> 
<?php 
    // output data of each row 

    while($row = $result->fetch_assoc()) 
    { ?> 
     <tbody> 
      <tr> 
       <td> 
        <?php echo $row["emp_id"]; ?> 
       </td> 
       <td> 
        <?php echo $row["last_name"]; ?> 
       </td> 
       <td> 
        <?php echo $row["first_name"]; ?> 
       </td> 
       <td> 
        <?php echo $row["leave_type"]; ?> 
       </td> 
       <td> 
        <?php echo $row["start_date"]; ?> 
       </td> 
       <td> 
        <?php echo $row["end_date"]; ?> 
       </td> 
       <td> 
        <?php echo $row["comment"]; ?> 
       </td> 
       <td> 
        <?php echo $row["date_filed"]; ?> 
       <td> 
        <?php echo $row["time_filed"]; ?> 
       </td> 
       <td> 
        <?php echo $row["status"]; ?> 
       </td> 
       <td> 
       <?php 
       $leavestatus = $row["status"]; 
       $leaveid = $row["leave_id"]; 
       echo $leaveid; 
       ?> 
       </td> 
       <td> 
     <button type="button" name="<?php $leaveid; ?>" class="btn btn-default" data-toggle="modal" data-target="#myModal">View</button> 
      <div class="modal fade" id="myModal" role="dialog"> 
       <div class="modal-dialog"> 
        <div class="modal-content"> 
         <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal">&times;</button> 
         <h4 class="modal-title">Update Leave</h4> 
         </div> 
         <div class="modal-body"> 
         <p>Leave ID:<?php echo $leaveid; ?></p> 
         <p>Leave Status:<?php echo $leavestatus; ?></p> 
         </div> 

         <div class="modal-footer"> 
         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
         </div> 
        </div> 
       </div> 
      </div> 
     </td> 
     </tr> 
     </tbody> 
    <?php } 
    echo "</table>"; 
} else { 
    echo "0 results"; 
} 
$conn->close(); 
?> 

</html> 

Antwort

0

Alle Ihre Mods haben die gleiche ID. Der erste wird also aufgerufen, wenn auf eine Schaltfläche geklickt wird. Versuchen Sie folgendes:

<button type="button" name="<?php echo $leaveid; ?>" class="btn btn-default" data-toggle="modal" data-target="#myModal-<?php echo $leaveid; ?>">View</button> 

(auch, sind Sie die Echo-Anweisung auf dem Tastennamen)

und

<div class="modal fade" id="myModal-<?php echo $leaveid; ?>" role="dialog"> 

Oder noch besser, nur eine modale haben, die außerhalb der Schleife ist und Verwenden Sie jQuery zum Auffüllen, wenn auf eine Schaltfläche geklickt wird.

+0

Sie sind ein Lebensretter, mein Herr! Diese Arbeit! Ich danke dir sehr. BTW, jQuery ist noch nicht in unserem Thema, wird aber sicherlich bald verwenden. Danke noch einmal. :) – xavier

1

Zuerst legte das tbody-Tag außerhalb dieser while-Schleife:

while($row = $result->fetch_assoc()) 
    { ?> 
     <tbody> 
      <tr> 
       <td> 
        <?php echo $row["emp_id"]; ?> 
       </td> 
       <td> 
       </td> 
      </tr> 
     </tbody> 
    <?php } 

sein sollte:

while($row = $result->fetch_assoc()) 
     { ?> 
       <tr> 
        <td> 
         <?php echo $row["emp_id"]; ?> 
        </td> 
        <td> 
        </td> 
       </tr> 

     <?php } 

auch die ID des modalen die Eigenschaft der Schaltfläche es enthüllt übereinstimmen muss:

<button type="button" name="<?php $leaveid; ?>" class="btn btn-default" data-toggle="modal" data-target="#myModal_<?php $leaveid; ?>">View</button> 
      <div class="modal fade" id="myModal_<?php $leaveid; ?>" role="dialog"> 

Gib das einen Schuss!

Best of Luck!

+0

Dieser hat auch funktioniert. Ja, die modale ID ist das Problem. Ich sehe es jetzt. Vielen Dank für deine Hilfe. – xavier

Verwandte Themen