Форма диалога Jquery неправильно публикует содержимое поля в файл PHP

0

На одной из моих веб-страниц есть ссылка на нее.

<div id="updateDay"><a href="#" id = "updateDiffDay">Update</a> a different day</div>

Когда пользователь нажимает на ссылку updateDiffDay, диалоговое окно jquery modal открывается с формой на нем. Форма имеет два поля: один - фидпик, а другой - текстовое поле.

<form id="updateDiffDayForm" method="post" action="updateDiffDay.php">
    <input class = "field" type="text" placeholder= "Select a date" id="datepicker">
    <input type="text" id="diffDayDailyMetric" class="field" placeholder="Enter weight" />
</form>

В диалоговом окне есть две кнопки: "Обновить" и "Отмена". Когда пользователь нажимает кнопку "Обновить", форма должна публиковать содержимое, введенное пользователем в форме, в файл updateDiffDay.php.

Код модального диалогового окна выглядит следующим образом:

<script>
$(function() {
$( "#datepicker" ).datepicker({
  dateFormat: 'yy-mm-dd',
  changeMonth: true,
  changeYear: true,
yearRange: "-90:+0"
  });

$( "#dialog" ).dialog({
  autoOpen: false,
  width: 350,
  height: 250,
  modal: true,
  dialogClass: 'ui-dialog',
  draggable: false,
  resizable: false,
  buttons: {
        Update: function () {
    $('#updateDiffDayForm').submit();
        },
        Cancel: function () {
            $(this).dialog("close");
        }
    },

  show: {
    duration: 500
  },
  hide: {
    duration: 500
  }
});

$( "#updateDiffDay" ).click(function() {
  $( "#dialog" ).dialog( "open" );
});

});

Код для updateDiffDay.php выглядит следующим образом:

<?php
$date = $_POST['datepicker'];
$metric = $_POST['diffDayDailyMetric'];
echo $date;
echo $metric;

Кажется, что все работает до тех пор, пока поля в форме не будут отправлены в файл PHP. Проблема заключается в том, что пользователь нажимает кнопку "Обновить" на содержимое полей ввода формы (т.е. Дату, которую пользователь выбирает в списке выбора даты и значение, введенное в поле ввода diffDayDailyMetric) игнорируются, а дата по умолчанию для датпикера, 1970-01-01, отправляется на datepicker, и ничто не отправляется на diffDayDailyMetric.

Я много пробовал и искал форумы, но не смог выполнить эту работу. Любая помощь будет принята с благодарностью. Это первый раз, когда я когда-либо использовал jquery. Помощь очень ценится. благодаря

Теги:
datepicker

1 ответ

0
Лучший ответ

В вашей форме:

<form id="updateDiffDayForm" method="post" action="updateDiffDay.php">
    <input class = "field" type="text" placeholder= "Select a date" id="datepicker">
    <input type="text" id="diffDayDailyMetric" class="field" placeholder="Enter weight" />
</form>

Вы не используете атрибут имени. Обновите его с помощью:

<form id="updateDiffDayForm" method="post" action="updateDiffDay.php">
    <input class="field" type="text" placeholder="Select a date" id="datepicker" name="datepicker">
    <input type="text" id="diffDayDailyMetric" class="field" placeholder="Enter weight" name="diffDayDailyMetric" />
</form>

И это должно сделать трюк.

  • 0
    Джош. Спасибо. Я думал, что он использовал «идентификатор», а не «имя». Я провел 4 часа, пытаясь понять, что случилось. Я сделал это изменение, и оно отлично работает. Еще раз спасибо, человек!
  • 0
    Нет проблем. Я сделал то же самое. Отлаживать никогда не весело.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню