フォームは、承認を待っているすべての行を出力する関数から作成されます。
function all_reviews(){
$query1= mysql_query("SELECT * FROM {$table} WHERE first != '' && disp_state= '0' && rejected != '1'");
if (!$query1) {
die("Query to show fields from table failed");
}
$fields_num = mysql_num_fields($query1);
// printing table rows
while($row = mysql_fetch_array($query1))
{
//review action buttons
echo "<div class=\"rev_action\">";
echo "<input type=\"hidden\" name=\"".$row['id']."\">";
echo "<input type=\"submit\" name=\"accept\" value=\"Approve\" class=\"success rev_button\" onclick=\"document.getElementById('review_action').submit()\">";
echo "<input type=\"submit\" name=\"reject\" value=\"Reject\" class=\"error rev_button\" onclick=\"document.getElementById('review_action').submit()\">";
echo "</div>";
}
適切な方法は、非表示の入力で行IDを出力することだと思います。問題は、一度に複数の行が印刷される可能性があることです。
承認または拒否ボタンに関連する正確な行を選択するにはどうすればよいですか?
html:
<form name="form" action="include/review_submit.php" id="review_action" method="post">
<?php all_reviews(); ?>
</form>
php(review_submit.php):
//database server connection
mysql_connect ("$servername","$dbusername","$dbpassword") or die(mysql_error());
//database connection
mysql_select_db("esd_db") or die(mysql_error());
//data feilds from review form
if($_POST['button'] == "Approve") {
//code to update given row with an approval status
}
//data feilds from review form
if($_POST['button'] == "Reject") {
//code to update given row with an rejection status
}
//insert values into table
mysql_query("UPDATE `reviews` ") or die(mysql_error());
Print "Success";
?>