繁体   English   中英

如何从ajax post序列化更新数据库? php、jquery、javascript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM