SQL-запрос вставки не работает с датчиком выбора JQuery UI

Ввод HTML:

<input name="week_ending" type="text" id="week_ending" value="" />

JQuery:

<script>
$(function() {
$( "#week_ending" ).datepicker();
});
</script>

Код PHP:

$week_ending = db_quote($_POST['week_ending']);

function db_quote($value) {
$connection = db_connect();
return "'" . mysqli_real_escape_string($connection,$value) . "'";
}

SQL:

$result = db_query("INSERT INTO `timesheets` (clientid, candid, weekending, department, orderno, basicpay, basiccharge, otpay, otcharge, ot2pay, ot2charge, status, hue, huc) VALUES ($client, $cand, $week_ending, $department, $order_no, $basic_pay, $basic_charge, $ot_pay, $ot_charge, $ot2_pay, $ot2_charge, $status, $hue, $huc)");
if($result){
print 'Success! ID of last inserted record is';
}
else {
die('Error : ' . db_error());
}

Каждый ряд, в который я вставляю timesheets имеет дату как 0000-00-00, Тип данных установлен на date в timesheets Таблица.

При проверке элемента после выбора даты HTML-код выглядит следующим образом:

<input class="hasDatepicker" name="week_ending" id="week_ending" value="" type="text">

Я предполагаю, что это объясняет 0000-00-00 входя в базу данных. Я пытался добавить .formatDate но это, кажется, не имеет значения и попытался изменить на <input type="date"> но до сих пор ничего не появляется в value имущество

0

Решение

Вы можете использовать функции PHP: date() а также strtotime проанализировать формат в метку времени, а затем в правильный формат даты.

Имейте в виду, что пользователи могут изменить поле ввода с неверными данными.

$week_ending = db_quote(date('Y-m-d',strtotime($_POST['week_ending'])));
1

Другие решения

По умолчанию Формат даты для jQuery UI mm/dd/yy (где уу четыре цифра год). Вы должны преобразовать этот формат даты в формат даты MySQL:

$datestr = "07/24/2015";
$dateobj = DateTime::createFromFormat("m/d/Y", $datestr);
$week_ending = $dateobj->format("Y-m-d");
// $week_ending becomes "2015-07-24"
0

По вопросам рекламы [email protected]