[英]How to update database from ajax post serialize? Php, Jquery, Javascript
我想使用更新查询从序列化更新我的房间表。 但这并不能拯救所有。 它只更新表的第一行。
我在我的数据库中的房间列表,房间表:
1 Room1 Regular
2 Room2 Standard
3 Room3 Deluxe
索引.php :
<script>
$(document).ready(function () {
$('#button').click(function(){
var serialize = $('#rooms').serialize();
$.ajax({
url: 'save.php',
data: serialize,
type: "POST",
success: function(json) {
alert('saved');
}
});
});
});
</script>
<?php
$connect = mysqli_connect('localhost', 'root', '', 'mydatabase');
$sql = "SELECT * FROM rooms";
$result = mysqli_query($connect, $sql);
while($row = mysqli_fetch_array($result))
{
$room_id = $row['room_id'];
$room_type = $row['room_type'];
$room_desc = $row['room_desc'];
?>
<button id="button"> SAVE </button>
<form id="rooms">
<input type="text" name="room_id[]" value="<?php echo $room_id;?>" />
<input type="text" name="room_type[]" value="<?php echo $room_type;?>" />
<input type="text" name="room_desc[]" value="<?php echo $room_desc;?>" />
</form>
<?php
}
?>
保存.php :
<?php
$connect = mysqli_connect('localhost', 'root', '', 'rooms');
for($i = 0; $i < count($_POST['room_id']); $i++)
{
$room_id = mysqli_real_escape_string($connect, $_POST['room_id'][$i]);
$room_type = mysqli_real_escape_string($connect, $_POST['room_type'][$i]);
$room_desc = mysqli_real_escape_string($connect, $_POST['room_desc'][$i]);
if (empty(trim($room_id))) continue;
$sql = "UPDATE `rooms` SET `room_type`= '$room_type',`room_desc`= '$room_desc' WHERE `room_id` = '$room_id'"; // ---- it doesn't updates all. it only update the first one.
mysqli_query($connect, $sql);
}
?>
我也尝试使用插入查询,它工作正常并保存所有数据,但是当我使用更新时,只更新第一行。 请帮我。
对于这个愚蠢的问题,我真的很抱歉。 我已经找到了答案,否则我应该说我的错误。
我发现<form id="rooms"></form>
必须放在 while 语句之外才能获取所有数据。
我现在可以使用更新查询。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.