Отправка нескольких данных DatePicker формы в одни и те же места назначения - PullRequest
0 голосов
/ 24 сентября 2018

У меня проблемы с созданием нескольких уникальных экземпляров DatePicker в одном div и последующей отправкой дат в форме.

Моя проблема в том, что мой div в настоящее время имеет несколько элементов массива, строящих эту форму:

<?php foreach($expiredPages as $expiredPage): ?>
<form id="updateTime_<?php echo $expiredPage['id']?>" class="updateTime" method="POST">
                    <input type="hidden" name="currentPageID" value="<?php echo $expiredPage['id']?>">
                    <div class="datepick input-group date" id="datetimepicker_<?php echo $expiredPage['id']?>" data-target-input="nearest">
                      <input type="text" class="form-control datetimepicker-input" data-target="#datetimepicker_<?php echo $expiredPage['id']?>" name="datePicker<?php echo $expiredPage['id']?>" />
                      <span class="input-group-addon" data-target="#datetimepicker_<?php echo $expiredPage['id']?>" data-toggle="datetimepicker">
                      <span class="fa fa-calendar"></span>
                      </span>
  <input type="submit" name="Extend Date" class="extendDate">
</form>
<?php endforeach; ?>

Что означает, что у меня есть 3 формы в div, каждая из которых имеет свой собственный указатель даты и кнопку отправки.Я исправил это, чтобы убедиться, что каждый DatePicker работает независимо, но я не могу понять, как уникальным образом передать два моих ввода в PHP.

Я получаю ошибки с неопределенным индексом для currentPageID и datePicker.

JS:

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

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

exteTime.php

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

$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";
}

1 Ответ

0 голосов
/ 24 сентября 2018

Что касается вашего php, у вас нет почтового ключа с названием datePicker ...

$_POST['datePicker'];

не существует ... вы добавляете к имени вашего входа идентификатор:

<input type="text" class="form-control datetimepicker-input" data-target="#datetimepicker_<?php echo $expiredPage['id']?>" name="datePicker<?php echo $expiredPage['id']?>" /> 

Простое исправление должно выглядеть примерно так:

$dtpick = 'datePicker' . $pageID;
      $newTime  = $_POST[$dtpick];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...