На одной из моих веб-страниц есть ссылка на нее.
<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. Помощь очень ценится. благодаря
В вашей форме:
<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>
И это должно сделать трюк.