Передайте выбранные значения даты с datepicker на php

Я нашел похожие вопросы здесь, но большинство решений не работают для меня. У меня есть форма с datepicker, и я хочу передать выбранную дату в файл php, но она не работает.

Мой html выглядит примерно так:

<form name="myForm" action="createevent.php" onsubmit="return validateForm()" method="get"> <p>Date<input type="text" id="mydate" /></p> <input type="submit" name="submit" value="Submit" /> </form> 

Javascript:

 $(function() { $.datepicker.setDefaults($.extend($.datepicker.regional[""])); $("#mydate").datepicker({ onSelect: function(dateText, inst) { var dateAsString = dateText; alert (dateAsString); //this prints out the right value. alert (mydate.value); //this value is the same as dateText } }); 

createevent.php

 function CreateEvent() { if(isset($_GET['submit'])) { $mydate=$_GET['mydate']; echo $mydate; } } 

Когда я предупреждаю (mydate.value), он дает правильное значение. Но когда я повторяю $ mydate в своем php-файле, он ничего не показывает. Любая помощь приветствуется!

Обновить:

Спасибо вам, ребята! Я сделал глупую ошибку. Добавляет атрибут name. У меня есть следующий вопрос. У меня тоже есть время, и он возвращает что-то вроде 01:21. Мой день возвращает что-то вроде 01/01/2013. Есть ли способ объединить эти два и сделать его типом даты, чтобы я мог добавить в свою базу данных? Спасибо огромное!

Поскольку кажется, что вы ничего не делаете с датой после того, как onSelect уволил, единственное, что я не вижу, это то, что ваш вход не имеет атрибута имени, и он не будет виден в $_GET

Измените свой вход на что-то вроде:

 <input type="text" id="mydate" name="mydate"/> 

И это должно сработать.

Если вы планируете хранить дату и время в базе данных MySQL, вы можете сделать что-то вроде этого. Сначала в вашей форме:

 <form name="myForm" action="createevent.php" onsubmit="return validateForm()" method="get"> <p>Date<input type="text" id="mydate" name="mydate"/></p> <p>Time<input type="text" id="mytime" name="mytime"/></p> <input type="hidden" id="mydatetime" name="mydatetime"/> <input type="submit" name="submit" value="Submit" /> </form> 

Затем, в вашей функции validateForm() , я бы добавил что-то вроде этого:

 var date = $('#mydate').val(), time = $('#mytime').val(); var datetime = [date.replace('/','-'),time].join(' '); // 01-01-2013 01:21 $('#mydatetime').val(datetime); 

Я не пробовал, но мне интересно, может быть, это просто ваш контроль получил «имя» отсутствует, попробуйте изменить его следующим образом:

 <input type="text" id="mydate" name="mydate"/> 

Сделано изменение в поле ввода

 <input type="text" id="mydate" /> 

К:

 <input type="text" id="mydate" name="mydate"/> 

Когда вы отправите форму, она представит значение имени текстового поля mydate, и вы сможете получить его с помощью $_GET["mydate"]