多个datepicker示例,更新数据库

tjrkku2a  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(392)

我在使用datepicker提交数据库更新时遇到了一个问题,我认为这与没有唯一的datepicker示例有关。
目前,我正在使用foreach循环(基于select语句)来构建div部分,每个部分都有自己的显示当前日期的窗体和设置新日期的datepicker示例。
日期选择器显示为一个输入,但是,无论我单击哪个,它只在第一个上展开。我相信这是因为我的datepicker输入中有一个非唯一的名称,但我认为这也会导致我的ajax和db insert出现问题。
基本上,这个电流回路目前建立了3种形式。每个都有自己的当前时间标签、新的时间日期选择器输入和提交按钮。
我只是想这样做,如果他们为给定的页面选择一个新的时间并单击submit,它就会发布到php脚本并用新的时间更新db。
我附加了页面id $expiredPage['id'] 到datepicker名称,这似乎没问题,但我不知道如何将其转换为php脚本中的$get变量。
非常感谢您的帮助。

<h6>Current Expiration: <?php echo $expiredPage['end_time'] ?></h6>
<br>
<h6>New Expiration: </h6>
<form id="updateTime" method="POST">
  <input type="hidden" name="currentPageID" value="<?php echo $expiredPage['id']?>">
  <div class="datepick input-group date" id="datetimepicker" data-target-input="nearest">
    <input type="text" class="form-control datetimepicker-input" data-target="#datetimepicker" name="datePicker<?php echo $expiredPage['id']?>" />
    <span class="input-group-addon" data-target="#datetimepicker" data-toggle="datetimepicker">
    <span class="fa fa-calendar"></span>
    </span>
  </div>

    <input type="submit" name="Extend Date" id="extendDate">
</form>

<?php endforeach; ?>

<script type="text/javascript">
  $("#extendDate").click(function(){
  event.preventDefault();
  var string = $('#updateTime').serialize();

    // AJAX Code To Submit Form.
        $.ajax({
            type: "POST",
            url: "extendTime.php",
            data: string,
            dataType: 'json',
            cache: false,
            success: function(response){
              location.reload();
            }
        });
    });
</script>

扩展时间.php

$pageID = $_GET['currentPageID'];
$newTime = $_GET['datePicker'];

$newEndTime = DateTime::createFromFormat('m/d/Y h:i A', $newTime);
$convertedDateTime = $newEndTime->format('Y-m-d H:i:s');

$extendExpiration = "
UPDATE pages 
SET end_time = '$convertedDateTime'
WHERE id = '$pageID';
";

if($mysqlConn->query($extendExpiration)=== TRUE){
 echo "SUCCESS";
}else{
 echo "Could not extend Time";
}

mysqli_close($mysqlConn);
wqsoz72f

wqsoz72f1#

您只能在页面上创建一个id为的元素,因此要使表单id对页面和更改按钮是唯一的 IDCLASS 如下所示:

<form id="updateTime_<?php echo $expiredPage['id']?>" method="POST">
  <input type="hidden" name="currentPageID" value="<?php echo $expiredPage['id']?>">
  <div class="datepick input-group date" id="datetimepicker" data-target-input="nearest">
    <input type="text" class="form-control datetimepicker-input" data-target="#datetimepicker" name="datePicker<?php echo $expiredPage['id']?>" />
    <span class="input-group-addon" data-target="#datetimepicker" data-toggle="datetimepicker">
    <span class="fa fa-calendar"></span>
    </span>
  </div>

    <input type="submit" name="Extend Date" class="extendDate">
</form>

在你身上 JS ,按如下方式提交已单击按钮的父窗体:

<script type="text/javascript">
  $(".extendDate").click(function(event){
  event.preventDefault();
  var string = $(this).parent().serialize();

    // AJAX Code To Submit Form.
        $.ajax({
            type: "POST",
            url: "extendTime.php",
            data: string,
            dataType: 'json',
            cache: false,
            success: function(response){
              location.reload();
            }
        });
    });
</script>

请求类型也是 POST ,因此您将使用php中的值 $_POST :

$pageID = $_POST['currentPageID'];
$newTime = $_POST['datePicker'];

相关问题