无法在 jquery 和 jtable 中使用日期选择器进行更新和创建
can't update and create using datepicker in jquery and jtable
我的日期字段有问题。当我创建新记录或更新现有记录时,日期字段保存为 000-00-00。
当我 select 任何一天使用日期选择器时,它存储在 table 中,值为 (0000-00-00)。
数据库字段为日期类型。
我下载了 PHP 示例代码,使用示例创建了一个数据库 sql 并更改了 RecordDate 字段 editable,我遇到了同样的问题。
数据库值:0000-00-00
JTable 显示:1899-11-30
我应该怎么办??请帮助 这是 jquery 代码:-
$(document).ready(function () {
var assignmentid= "<?php echo $assignmentid; ?>";
//Prepare jTable
$('#PeopleTableContainer').jtable({
title: 'Table of people',
actions: {
listAction: 'teacherfill.php?action=list&aid="<?php echo $assignmentid; ?>"',
createAction: 'teacherfill.php?action=create&aid="<?php echo $assignmentid; ?>"',
updateAction: 'teacherfill.php?action=update&aid="<?php echo $assignmentid; ?>"',
deleteAction: 'teacherfill.php?action=delete&aid="<?php echo $assignmentid; ?>"'
},
fields: {
lecture_id: {
key: true,
create: false,
edit: false,
list: false
},
lecture_no: {
title: 'Lecture No',
width: '40%'
},
lecture_date: {
title: 'Lecture Date',
width: '20%',
type:'date'
}
}
});
//Load person list from server
$('#PeopleTableContainer').jtable('load');
});
PHP代码:-
if($_GET["action"] == "update" && $_GET["aid"])
{
$assignmentid=$_GET['aid'];
$updatedlecno=$_POST["lecture_no"];
//$updatedlecdate=date("Y-m-d",strtotime($_POST['lecture_date']));
$updatedlecdate=$_POST['lecture_date'];
$lecid=$_POST["lecture_id"];
$q="UPDATE lecture_schedule SET lecture_no=$updatedlecno,lecture_date=$updatedlecdate WHERE (lecture_id=$lecid)";
$result = mysqli_query($conn,$q);
if($result)
{
$er="No error";
}
else{
$er1=mysqli_error($conn);
$er="error";
}
//Return result to jTable
$jTableResult = array();
$jTableResult['Result'] = "OK";
//$jTableResult['status'] = $er;
//$jTableResult['date'] = $updatedlecdate;
print json_encode($jTableResult);
}
检查datepicker的日期格式,如果格式是"d-m-Y"或"m-d-Y"或"d/m/Y"等,则必须在form [=之后将其更改为"Y-m-d"格式18=] 在你的 php 代码中,在 insert/update.
之前
像这样,根据我对日期格式的评论。
$DateTime = new DateTime($_POST['lecture_date']);
$lecture_date = $DateTime->format('Y-m-d');
您必须将其从 m/d/Y
转换为数据库使用的 Y-m-d
( ISO 8601 )
我的日期字段有问题。当我创建新记录或更新现有记录时,日期字段保存为 000-00-00。
当我 select 任何一天使用日期选择器时,它存储在 table 中,值为 (0000-00-00)。
数据库字段为日期类型。
我下载了 PHP 示例代码,使用示例创建了一个数据库 sql 并更改了 RecordDate 字段 editable,我遇到了同样的问题。
数据库值:0000-00-00 JTable 显示:1899-11-30 我应该怎么办??请帮助 这是 jquery 代码:-
$(document).ready(function () {
var assignmentid= "<?php echo $assignmentid; ?>";
//Prepare jTable
$('#PeopleTableContainer').jtable({
title: 'Table of people',
actions: {
listAction: 'teacherfill.php?action=list&aid="<?php echo $assignmentid; ?>"',
createAction: 'teacherfill.php?action=create&aid="<?php echo $assignmentid; ?>"',
updateAction: 'teacherfill.php?action=update&aid="<?php echo $assignmentid; ?>"',
deleteAction: 'teacherfill.php?action=delete&aid="<?php echo $assignmentid; ?>"'
},
fields: {
lecture_id: {
key: true,
create: false,
edit: false,
list: false
},
lecture_no: {
title: 'Lecture No',
width: '40%'
},
lecture_date: {
title: 'Lecture Date',
width: '20%',
type:'date'
}
}
});
//Load person list from server
$('#PeopleTableContainer').jtable('load');
});
PHP代码:-
if($_GET["action"] == "update" && $_GET["aid"])
{
$assignmentid=$_GET['aid'];
$updatedlecno=$_POST["lecture_no"];
//$updatedlecdate=date("Y-m-d",strtotime($_POST['lecture_date']));
$updatedlecdate=$_POST['lecture_date'];
$lecid=$_POST["lecture_id"];
$q="UPDATE lecture_schedule SET lecture_no=$updatedlecno,lecture_date=$updatedlecdate WHERE (lecture_id=$lecid)";
$result = mysqli_query($conn,$q);
if($result)
{
$er="No error";
}
else{
$er1=mysqli_error($conn);
$er="error";
}
//Return result to jTable
$jTableResult = array();
$jTableResult['Result'] = "OK";
//$jTableResult['status'] = $er;
//$jTableResult['date'] = $updatedlecdate;
print json_encode($jTableResult);
}
检查datepicker的日期格式,如果格式是"d-m-Y"或"m-d-Y"或"d/m/Y"等,则必须在form [=之后将其更改为"Y-m-d"格式18=] 在你的 php 代码中,在 insert/update.
之前像这样,根据我对日期格式的评论。
$DateTime = new DateTime($_POST['lecture_date']);
$lecture_date = $DateTime->format('Y-m-d');
您必须将其从 m/d/Y
转换为数据库使用的 Y-m-d
( ISO 8601 )