gpt4 book ai didi

php - 如何使用 php 表单更新表中的特定行?

转载 作者:行者123 更新时间:2023-11-29 11:31:32 26 4
gpt4 key购买 nike

请耐心等待,我还不熟悉该语言。我有一个表格,列出了申请人记录,例如申请人编号、姓名和状态。我想使用 PHP 表单在特定行上更新申请人状态“已聘用”或“失败”。但是,我不确定如何在提交时获取其行上的特定提交名称。或者如果您有解决方法,我将不胜感激。非常感谢您的帮助。

<!DOCTYPE html>
<html>
<h2>Applicant Records</h2>
<?php

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

// 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 id, firstname, lastname, status FROM applicant";
$result = $conn->query($sqli);


if ($result->num_rows > 0) { ?>
<table class="table">
<thead>
<tr>
<th>Applicant No.</th>
<th>Lastname</th>
<th>Firstname</th>
<th>Status</th>
<th></th>
</tr>
</thead>
<?php
// output data of each row

echo "<tbody>";
while($row = $result->fetch_assoc())
{ ?>
<tr>
<td>
<?php echo $row["id"];
$appid = $row["id"];
?>
</td>
<td>
<?php echo $row["lastname"]; ?>
</td>
<td>
<?php echo $row["firstname"]; ?>
</td>
<td>
<?php echo $row["status"]; ?>
</td>
<td>
</td>
<td>

<div>
<form action="" role="form" method="post" name="form<?php echo $appid; ?>">
<select name="applicant_status">
<option value="Hired">Hire</option>
<option value="Failed">Fail</option>
</select>

</p>
<button type="submit" class="btn btn-default" name = "submit<?php echo $appid; ?>" data-dismiss="modal">Submit</button>
</form>
<?php

if(isset($_POST["submit"])){
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$newappid = $appid;
$newapptstatus = $_POST['applicant_status'];
$connect = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $connect ) {
die('Could not connect: ' . mysql_error());
}

$sql_sub = "UPDATE applicant ". "SET status = '$newappstatus'".
"WHERE id = '$newappid'" ;
mysql_select_db('applicantrecord');
$retval = mysql_query( $sql_sub, $connect );

if(! $retval ) {
die('Could not update data: ' . mysql_error());
echo "<script type= 'text/javascript'>alert('An error occured! Applicant status update failed!');</script>";
}

echo "<script type= 'text/javascript'>alert('Applicant status updated successfully!');</script>";
mysql_close($connect);

}
?>
</div>

</td>
</tr>
<?php }
echo "</tbody>";
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>

</html>

最佳答案

在检查 $_POST['submit'] 是否已设置的 if 语句中,索引“submit”不存在。因此,isset($_POST['submit']) 的计算结果为 false,并且您用于更新表的查询永远不会被执行。

变量$appid随着添加的每一行而改变,因此当页面加载完成并且在某一行上按下提交按钮时,$appid > 不一定包含正确的行号。

要解决此问题,您可以在表单中使用隐藏输入:

<input name="id" value="<?php echo $appid ?>" type="hidden">

然后您可以将 isset($_POST['submit']) 替换为 isset($_POST['id']) 并设置 $newappid = $_POST['id'] 获取要更改的行号。

关于php - 如何使用 php 表单更新表中的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37332895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com