我有从mysql填充的表。其中一行是status
,默认为0,并且有下拉菜单,我可以选择1
或2
。然后是按钮update
,它应该更新表中的那一行。问题是没有更新。
这是表格式
if(isset($_GET['rest_id']) && is_numeric($_GET['rest_id'])){
$rest_id = $_GET['rest_id'];
$query = mysqli_query($con, "SELECT * FROM reservation
WHERE table_res_id = $rest_id
ORDER BY `DateTime` DESC ");
echo "</p>";
// display data in table
echo '<table class="table table-striped table-bordered responsive">';
echo "<thead>";
echo '<tr>
<th>Name</th>
<th>Comment</th>
<th>Status</th>
<th></th>
</tr>
</thead>';
echo '<div class="row">';
echo '<div class="box col-md-12">';
echo '<div class="box-content">';
echo "<tbody>";
// loop through results of database query, displaying them in the table
while ($res = mysqli_fetch_assoc($query))
{
echo '<tr>';
echo '<td>' . $query['name'] . '</td>';
echo '<td>' . $query['comment'] . '</td>';
echo '<td>
<div class="btn-group">
<select>
<ul class="dropdown-menu">
<li><option> Status:'. $query['status'] .'
<span class="caret"></span>
</option></li>
<li><option>1</option></li>
<li><option>2</option></li>
</ul>
</select>
</div>
</td>';
echo '<td>
<a class="btn btn-info" href="users/Confirm.php?id=' . $query['id'] . '">
<i class="glyphicon glyphicon-edit icon-white"></i>
Change status</a></td>';
echo "</tr>";
这是confirm.php
session_start();
include '../misc/db.inc.php';
ob_start();
if (isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
$query = "SELECT * FROM reservation WHERE id=$id" or die(mysqli_error($con));
$res = mysqli_query($con, $query);
$row = mysqli_fetch_assoc($res);
if ($stmt = $con->prepare("UPDATE reservation SET status = ? LIMIT 1"))
{
$stmt->bind_param("i",$res['status');
$stmt->execute();
$stmt->close();
}
else
{
echo "ERROR: could not prepare SQL statement.";
}
$con->close();
答案 0 :(得分:1)
根据您的代码,您再次发送数据库值以确认.php而不是用户选择的值。 为此,将名称指定为like ...而不是锚点击使用表单提交..它将起作用。
另一种解决方案。 你可以在javascript函数调用的地方调用onchange事件,并通过Ajax更新数据库中的选定值。希望这个逻辑可以帮到你
答案 1 :(得分:1)
根据我们之前的评论:
按一个按钮<input type="button" onclick="saveChange('.$id.')"/>
然后将函数'url'设置为users/confirm.php
并将'data'设置为id ..
function saveChange(id){
$.ajax({
type: "POST",
url: "users/confirm.php",
data: 'id='+id
});
}
我建议你使用类似的东西:
$.ajax({
type: "POST",
url: "save.php",
data: data,
success: function(msg){}
});
使用onchange=""
事件,而save.php
只需使用更新方法。
顺便说一下
$query = "SELECT * FROM reservation WHERE id=$id" or die(mysqli_error($con));
$res = mysqli_query($con, $query);
有点像:
$query = "SELECT * FROM reservation WHERE id=$id";
$res = mysqli_query($con, $query) or die(mysqli_error($con));