【发布时间】:2021-12-03 03:57:39
【问题描述】:
我有一个引导模式表单,当您单击编辑按钮时会打开它。不幸的是,更新查询没有执行。请帮我看看我哪里出错了。谢谢。
按钮代码是
<td><button type="button" class="btn btn-success editbtn">Edit House</button></td>
模态表单获取传递的数据,因为我在检查控制台时看到它。
<div class="modal fade" id="editmodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Edit</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form class="form-sample" form action="updatehouse.php" method="POST">
<div class="content-wrapper">
<div class="row">
<div class="col-12 grid-margin">
<div class="card">
<div class="card-body">
<h4 class="card-title">Update Property</h4>
<div class="form-group">
<label for="house">House Name</label>
<input type="hidden" name="house_id" id="house_id"/>
<input type="text" class="form-control" id="house_name" name="house_name" />
</div>
<div class="form-group">
<label for="landlord">Landlord</label>
<input type="text" class="form-control" id="house_landlord" name="house_landlord" />
</div>
<div class="form-group">
<label for="location">Location</label>
<input type="text" class="form-control" id="house_location" name="house_location" />
</div>
<div class="form-group">
<label for="commission">Commission</label>
<input type="text" class="form-control" id="house_commission" name="house_commission" />
</div>
<div class="form-group">
<label for="serviceCharge">Service Charge</label>
<input type="text" class="form-control" id="house_service_charge" name="house_service_charge" />
<input type="hidden" name="house_siku_added" id="house_siku_added"/>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary" name="submit" id="submit">Save changes</button>
</div>
</form>
</div>
</div>
</div>
</div>
要触发按钮打开模态,我调用脚本
<script>
$(document).ready(function() {
$('.editbtn').on('click', function(){
$('#editmodal').modal('show');
$tr = $(this).closest('tr');
var data = $tr.children("td").map(function(){
return $(this).text();
}).get();
console.log(data);
$('#house_id').val(data[0]);
$('#house_name').val(data[1]);
$('#house_landlord').val(data[2]);
$('#house_location').val(data[3]);
$('#house_commission').val(data[4]);
$('#house_service_charge').val(data[5]);
$('#house_siku_added').val(data[6]);
});
});
</script>
updatehouse.php
include('config/db_connect.php');
if(isset($_POST["submit"]))
{
$house_id = $_POST['$house_id'];
$house_name = $_POST['$house_name'];
$house_landlord = $_POST['$house_landlord'];
$house_location = $_POST['$house_location'];
$house_commission = $_POST['$house_commission'];
$house_service_charge = $_POST['$house_service_charge'];
$house_siku_added = $_POST['$house_siku_added'];
$sql = "UPDATE houses SET house_name = '$house_name', house_landlord = '$house_landlord', house_location = '$house_location', house_commission = '$house_commission', house_service_charge = '$house_service_charge', house_siku_added = '$house_siku_added' WHERE house_id = '{$house_id}'";
$sqlQuery = mysqli_query($connection, $sql);
if($sqlQuery){
echo '<script> alert("Record was updated successfully."); </script>';
header("Location:listhouses.php");
}
else
{
echo '<script> alert("Data not updated"); </script>';
}
}
?>
【问题讨论】:
-
警告:您对SQL Injections 持开放态度,应该使用参数化的prepared statements,而不是手动构建查询。它们由PDO 或MySQLi 提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data。 Escaping is not enough!
-
@Dharman 我最初拥有它们,
$house_name = mysqli_real_escape_string($connection,$_POST['$house_name']);将其剥离到最低限度,以查看更新有什么问题。谢谢。 -
请不要使用转义。学习使用参数化查询。
标签: php mysqli bootstrap-modal