#javascript #php #jquery #ajax
Вопрос:
У меня есть два поля даты ввода. Мне нужно второе значение поля даты ввода, основанное на выборе первого поля даты ввода.
HTML:-
<label>First input date </label>
<input type="date" name="job_date" id="job_date" style="width:100%;" required>
<label>Second input date </label>
<input type="date" name="due_date" id="due_date" style="width:100%;" required>
Скрипт:-
<script type="text/javascript">
$('#job_date').change(function(){
var pazdate = $('#job_date').val();
$.ajax({
url: 'ajax1.php',
type:'POST',
data: {pazdate: $('#job_date').val()},
success: function(data) {
$('#due_date').val(data);
}
});
});
</script>
Форма PHP
<?php
if (isset($_POST['pazdate']))
{
$currentDateTime = $_POST['pazdate'];
$nextdue_date = strtotime(" 12hours", strtotime($currentDateTime));
$due_date = date("m/d/Y", $nextdue_date);
echo $due_date;
}
?>
Любая помощь будет очень признательна.
Комментарии:
1. Когда вы говорите
"Date value not working for Input Date Field"
— не могли бы вы уточнить, что вы имеете в виду, пожалуйста? Нормально ли функция AJAX извлекает значение? Есть ли ошибки?due_date
Не отображается ли возвращаемое значение?2.
<input type="date" />
-> > »value
: Строка DOMString, представляющая дату в формате ГГГГ-ММ-ДД или пустая»3. @ProfessorAbronsius Не показывает значение даты для поля ввода. Функция Ajax в порядке. похоже, функция ajax работает. но значение due_date не возвращается для второго поля даты ввода.
4. @hyperort используйте
console.log(data)
и проверьте, какое значение вы получаете от сервера?5. @NotABot да, я получил следующую ошибку в консоли:- не соответствует требуемому формату «гггг-ММ-дд».
Ответ №1:
Как сказал Андреас, вы получаете значение из своей формы в формате ГГГГ-ММ-ДД, но возвращаетесь из ajax1.php формат m/d/Y. Это не сработает. Код в порядке, просто измените формат даты в файле PHP и ничего больше.
Комментарии:
1. итак, могу ли я изменить формат для Y/m/d, если я прав?
2. Вы можете вернуть правильный формат из ajax, и «due_date» поймает его без проблем. $due_date = дата(«Y-m-d», $nextdue_date);
3. Привет, Элика, спасибо за ваш ответ. теперь я могу переодеться в соответствии с вашими инструкциями. проблема все еще сохраняется, и другое дело, что значение, возвращаемое текстовым полем, успешно, но когда дело доходит до поля даты, оно не работает