2016-07-24 1 views
2

Mein Problem ist eine Schaltfläche Senden unter jeder Zeile der Tabelle Daten rendert. Ich habe im ganzen Internet gesucht, um herauszufinden, wie ich mit nur einem Code für das gesamte Formular codieren kann. So wie es ist, kann ich nur $_POST für eine Zeile einreichen, während ich das gesamte Formular zur Verarbeitung einreichen muss.Übermitteln Schaltflächen unter Tabellendaten rendern. Ich möchte nur eine Schaltfläche zum Senden für das Formular

Hier ist mein Code:

<?php 
require("config.inc.php"); 
session_start(); 
$usrname = $_POST["uname"]; //variable passed from validateuser.html 
global $usrname; 
//echo $usrname; 

// initial query 
$query = "SELECT * FROM dfd_usr_profiles WHERE username= '".$usrname."'"; 
/*$query2 = "UPDATE dfd_usr_profiles SET filters = :fltrs, 
      regions = :regns 
      WHERE $usrname = :username"; */ 

//execute query 
try { 
$stmt = $db->prepare($query); 
$result = $stmt->execute(); 
} 
catch (PDOException $ex) { 
$response["success"] = 0; 
$response["message"] = "Database Error!"; 
die(json_encode($response)); 
} 

$rows = $stmt->fetchAll(); 


if ($rows) { 
$response["success"] = 1; 
$response["message"] = "Profile Information Available!"; 
$response["posts"] = array(); 

    foreach ($rows as $row) { 

    $post    = array(); 
    $post["userID"] = $row["userID"]; 
    $post["username"] = $row["username"]; 
    $post["filters"] = $row["filters"]; 
    $post["regions"] = $row["regions"]; 



    //update our repsonse JSON data 
    array_push($response["posts"], $post); 

$endi = count($post); 
//echo $endi; 


?> 
<!DOCTYPE html> 
<html> 
<script type="text/javascript"> 
    function getRow(n) { 
     var row = n.parentNode.parentNode; 
     var cols = row.getElementsByTagName("td"); 
     var i=0; 
     while (i < cols.length) { 
      alert(cols[i].textContent); 
      i++; 
     } 
    } 
</script> 
<body> 
    <form name="updatefilters" action="update_action.php" method="post" enctype="multipart/form-data>" id="update"> 
    <!-- <input type="submit" name="submit" id="update" value="Update" /> --> 
    <fieldset> 
    <table border="1" > 
    <legend>Update Filters and Regions</legend> 
     <tr> 
     <td><input type="checkbox" name="pID[]" value="<?php echo $post['userID']; ?>" onclick="getRow(this)" /></td> 
     <td><input type="input" name="uname" value="<?php echo $usrname;?>" /></td> 
     <td><?php echo $post['filters']; ?></td> 
     <td><label valign="top" for="" id="mfiltervals">Select Deal Type(s) you want:</label></p></td> 
     <td><?php require("dtypelist.php");?></td> 
     <td><?php echo $post['regions']; ?></td> 
     <td><label valign="top" for="" id="mregionvals">Select Region(s) you want:</label></td> 
     <td><?php require("regionslist.php");?></td> 
     </tr> 
    </table> 
    </fieldset> 
    </form> 
</body> 
</html> 
<?php 
echo '<button type="submit" name="submitupdate" form="update">Update</button>'; 
} 

// echoing JSON response 
// echo json_encode($response); // Commented out: Displays profile unformatted data. TC 070516. 


} else { 
$response["success"] = 0; 
$response["message"] = "No information for this Username is available!"; 
die(json_encode($response)); 
} 
// session_start(); place-holder 
?> 

Bitte helfen.

+0

Vielen Dank im Voraus für alle und alle Tipps –

Antwort

0

Sie müssen die foreach und die Senden-Schaltfläche, die Sie in den folgenden Code haben, verschieben. Der gesamte andere Code ist für diese Änderung nicht relevant. Ich habe die 3 Teile gekennzeichnet, die mit // **** Move verschoben werden müssen:

// **** Move this block to just before the `<tr>` tag 
foreach ($rows as $row) { 
    $post    = array(); 
    $post["userID"] = $row["userID"]; 
    $post["username"] = $row["username"]; 
    $post["filters"] = $row["filters"]; 
    $post["regions"] = $row["regions"]; 

    //update our repsonse JSON data 
    array_push($response["posts"], $post); 

    $endi = count($post); 
    //echo $endi; 
?> 
<!DOCTYPE html> 
<html> 
<script type="text/javascript"> 
    function getRow(n) { 
     var row = n.parentNode.parentNode; 
     var cols = row.getElementsByTagName("td"); 
     var i=0; 
     while (i < cols.length) { 
      alert(cols[i].textContent); 
      i++; 
     } 
    } 
</script> 
<body> 
    <form name="updatefilters" action="update_action.php" method="post" enctype="multipart/form-data>" id="update"> 
    <!-- <input type="submit" name="submit" id="update" value="Update" /> --> 
    <fieldset> 
    <table border="1" > 
    <legend>Update Filters and Regions</legend> 
     <tr> 
     <td><input type="checkbox" name="pID[]" value="<?php echo $post['userID']; ?>" onclick="getRow(this)" /></td> 
     <td><input type="input" name="uname" value="<?php echo $usrname;?>" /></td> 
     <td><?php echo $post['filters']; ?></td> 
     <td><label valign="top" for="" id="mfiltervals">Select Deal Type(s) you want:</label></p></td> 
     <td><?php require("dtypelist.php");?></td> 
     <td><?php echo $post['regions']; ?></td> 
     <td><label valign="top" for="" id="mregionvals">Select Region(s) you want:</label></td> 
     <td><?php require("regionslist.php");?></td> 
     </tr> 
    </table> 
    </fieldset> 
    </form> 
</body> 
</html> 
<?php // **** Move this up to just after the `</table>` tag 
echo '<button type="submit" name="submitupdate" form="update">Update</button>'; 
// **** Move this closing brace just after the `</tr>` tag 
} 

Nach den 3 bewegt, sieht es wie folgt - siehe Kommentare mit ****MOVED****:

?> 
<!DOCTYPE html> 
<html> 
<script type="text/javascript"> 
    function getRow(n) { 
     var row = n.parentNode.parentNode; 
     var cols = row.getElementsByTagName("td"); 
     var i=0; 
     while (i < cols.length) { 
      alert(cols[i].textContent); 
      i++; 
     } 
    } 
</script> 
<body> 
    <form name="updatefilters" action="update_action.php" method="post" enctype="multipart/form-data>" id="update"> 
    <!-- <input type="submit" name="submit" id="update" value="Update" /> --> 
    <fieldset> 
    <table border="1" > 
    <legend>Update Filters and Regions</legend> 
<?php // ****MOVED**** 
foreach ($rows as $row) { 
    $post    = array(); 
    $post["userID"] = $row["userID"]; 
    $post["username"] = $row["username"]; 
    $post["filters"] = $row["filters"]; 
    $post["regions"] = $row["regions"]; 

    //update our repsonse JSON data 
    array_push($response["posts"], $post); 

    $endi = count($post); 
    //echo $endi; 
?> 

     <tr> 
     <td><input type="checkbox" name="pID[]" value="<?php echo $post['userID']; ?>" onclick="getRow(this)" /></td> 
     <td><input type="input" name="uname" value="<?php echo $usrname;?>" /></td> 
     <td><?php echo $post['filters']; ?></td> 
     <td><label valign="top" for="" id="mfiltervals">Select Deal Type(s) you want:</label></p></td> 
     <td><?php require("dtypelist.php");?></td> 
     <td><?php echo $post['regions']; ?></td> 
     <td><label valign="top" for="" id="mregionvals">Select Region(s) you want:</label></td> 
     <td><?php require("regionslist.php");?></td> 
     </tr> 
<?php // ****MOVED**** 
} 
?> 
    </table> 
<?php // ****MOVED**** 
    echo '<button type="submit" name="submitupdate" form="update">Update</button>'; 
?> 
    </fieldset> 
    </form> 
</body> 
</html> 
<?php 

Stellen Sie sicher, <?php hinzuzufügen und ?> wo notwendig, um zwischen PHP und normaler Ausgabe korrekt zu wechseln.

+0

Danke Trincot. Dies ist die Antwort, nach der ich gesucht habe .. –

Verwandte Themen