4 回答

TA貢獻1851條經驗 獲得超3個贊
首先,您的表單在提交時不會提供有關要驗證的客戶ID的任何線索。在我的示例代碼中,我不會使用 echo,因為像這樣回顯 HTML 輸出是很丑陋的。相反,您可以像這樣操作:
?>
<div class='valid_name_btn'>
<form method='post'>
<input type="hidden" name="client" value="<?= $clientid ?>">
<input type='submit' class='btn btn-outline-primary' value ='Validate' name='validate' id='validate'></input>
</form>
<div class='valid_name'>
<?= $row["First_Name"] . " " . $row["Last_Name"]." - Account No. ".$row["account_no"] ?><br/>
</div>
</div>
<?php
我已將一個隱藏的輸入字段添加到表單中,然后您可以在文件開頭的行之前對其進行評估:$tobe_validated = ..
if (isset($_POST['validate']) && (isset($_POST['client'])) {
$clientid = $_POST['client'];
$sql = "UPDATE customer SET validated = 1 WHERE customer_id = '$clientid'";
$dbh->query($sql);
}
您還應該正確準備語句,或者至少對$client值進行轉義。由于我不知道$dbh是什么(你的代碼沒有告訴),我不會在這里這樣做。

TA貢獻1863條經驗 獲得超2個贊
$sql ="UPDATE customer SET validated = 1 WHERE customer_id = $clientid";
$clientid
應不帶“”

TA貢獻1827條經驗 獲得超9個贊
你有邏輯錯誤,因為你的形式只是在傳遞值,而不是確切的。您必須從循環中移出操作,并在每個表單中添加一個隱藏字段,并相應地:validateclientid$_POSTclientid
<?php
$sql = "SELECT customer.First_Name, customer.Last_Name, account.account_no, account.client_id, customer.username
FROM customer
INNER JOIN account ON customer.customer_id=account.client_id
WHERE validated = 0";
$tobe_validated = $dbh->query($sql);
foreach ($tobe_validated as $row) {
//creating variable for account number to put in query
$clientid = $row["client_id"];
echo "<div class='valid_name_btn'>";
echo "<form method='post'>
<input type='hidden' name='clientid' value='".$clientid."'>
<input type='submit' class='btn btn-outline-primary' value ='Validate' name='validate' id='validate'></input>
</form>";
echo "<div class='valid_name'>"; //div for name
echo $row["First_Name"] . " " . $row["Last_Name"] . " - Account No. " . $row["account_no"] . "<br/>"; //show name and account number of client
echo "</div>";
echo "</div>";
}
if (isset($_POST['validate']) && isset($_POST['clientid'])) {
$clientid = $_POST['clientid'];
$sql = "UPDATE customer SET validated = 1 WHERE customer_id = '$clientid'";
$dbh->query($sql);
}

TA貢獻1875條經驗 獲得超5個贊
您可以根據鍵制作動態表單,并可以通過如下所示的適當條件來檢查按鈕是否具有特定值
<?php
$sql ="SELECT customer.First_Name, customer.Last_Name, account.account_no, account.client_id, customer.username
FROM customer
INNER JOIN account
ON customer.customer_id=account.client_id
WHERE validated = 0";
$tobe_validated = $dbh->query($sql);
foreach ($tobe_validated as $key => $row) {
//creating variable for account number to put in query
$clientid=$row["client_id"];
echo "<div class='valid_name_btn'>";
echo "<form method='post' name="'validation_form_'.$key"><input type='submit' class='btn btn-outline-primary' value ='Validate' name="'validate_'.$key" id="'validate_'.$key"></input></form>";
echo "<div class='valid_name'>"; //div for name
echo $row["First_Name"] . " " . $row["Last_Name"]." - Account No. ". $row["account_no"]."<br/>"; //show name and account number of client
echo "</div>";
echo "</div>";
// validate account when button is clicked
if(isset($_POST['validate_'.$key]) && $_POST['validate_'.$key] == 'Validate') {
// query to change validated in customer table to 1
$updateSql ="UPDATE customer SET validated = 1 WHERE customer_id = '$clientid'";
$dbh->query($updateSql);
}
}
如果您需要任何幫助,請告訴我
- 4 回答
- 0 關注
- 149 瀏覽
添加回答
舉報