【问题标题】:SQL insert query not working with JQuery UI datepickerSQL插入查询不适用于JQuery UI datepicker
【发布时间】:2015-07-24 13:37:55
【问题描述】:

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。数据类型在timesheets 表中设置为date

在选择日期后检查元素时,HTML 是:

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

我猜这解释了0000-00-00 进入数据库的原因。我尝试添加.formatDate,但这似乎没有什么不同,并尝试更改为&lt;input type="date"&gt;,但value 属性中仍然没有出现任何内容

【问题讨论】:

  • 当你指定mysql兼容的日期格式,即.datepicker({dateFormat: "yy-mm-dd"})时,它是否有效
  • @SalmanA 这行得通,$( "#week_ending" ).datepicker().formatDate( "yy-mm-dd"); 没有?谢谢

标签: php jquery jquery-ui date jquery-ui-datepicker


【解决方案1】:

您可以使用 PHP 函数:date()strtotime 将格式解析为时间戳,然后解析为正确的日期格式。

请注意,用户可以使用错误的数据更改输入字段。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    相关资源
    最近更新 更多