以 HTML 形式更新 MySQL 行的 jQuery datepicker

Posted

技术标签:

【中文标题】以 HTML 形式更新 MySQL 行的 jQuery datepicker【英文标题】:jQuery datepicker in HTML form to update MySQL rows 【发布时间】:2016-12-22 04:45:55 【问题描述】:

我已经对这个主题进行了大量研究,但由于某种原因没有任何效果!

我想使用 datepicker 小部件更新 mysql 中的一行(它有一个日期列)。出于某种原因,每当我尝试更新行(适用于其他输入内容)时,它都会在我的 MySQL 表 0000-00-00 中显示 ??

这是我的 jQuery 代码:

<script>
  $( function() 
    $( "#datepicker" ).datepicker(
        dateFormat:"yy-mm-dd",
        altField: "#alternate",
      altFormat: "DD, d MM, yy"
    );
    $( "#selectable" ).selectable();
   );
  </script>

还有我的 html

<p> Date: <input name="slot_date" id="datepicker" > &nbsp; <input type="text" id="alternate" size="30"></p>

我的 php

  if( isset($_POST['btn-book']) )  

 $slot_date = date('yy-mm-dd',strtotime($_POST['slot_date']));
 $slot_line=$_POST['slot_line'];
 $reason=$_POST['reason'];
 $id=$_POST['id'];

 $sql="UPDATE appointments SET slot_date='$slot_date', slot_line='$slot_line', reason='$reason' WHERE id='$id'";
 $result=mysql_query($sql);


 if($result)
  header ("Location: homepage_loggedin_book_success.php");
 else 
  echo "ERROR";
  

无论如何,我已经尝试了很长时间,但日期选择器不会进入我的 MySql 表??

【问题讨论】:

某些日期选择器插件使用不同形式的隐藏名称,尝试 print_r($_POST) 看看是否有任何替代日期字段隐藏;或者,回显 $sql,查看 $slot_date 实际传入的内容 为 $slot_date 和其他东西发布更多你的 php。 看起来实际日期被隐藏为#alternate。当您选择日期时,您的#datepicker 字段日期格式是什么样的:yy-mm-dd 或 DD、d MM、yy?这两种格式都将在 mysql 中转换为 0000-00-00。 mysql 的有效默认数据格式将是 YYYY-mm-dd 否则您需要转换 【参考方案1】:

使用strtotime() 和date() 强制执行您想要的格式。

$slot_date = date('Y-m-d',strtotime($slot_date)); # will output 2016-08-16
$sql="UPDATE appointments SET slot_date='$slot_date', slot_line='$slot_line', reason='$reason' WHERE id='$id'";

您的代码可能容易受到 SQL 注入的影响。请参考http://php.net/manual/en/security.database.sql-injection.php。

【讨论】:

【参考方案2】:

在创建记录的原始表单中,所有设置是否正确? slot_linereason 字段是否正确更新?如果它们不是问题可能出在您的 PHP 中。您能否发布更多上下文的 PHP 代码?

【讨论】:

除“slot_date”之外的所有内容都正确更新。我发布了更多我的 PHP 代码,但其中的所有内容都与日期无关

以上是关于以 HTML 形式更新 MySQL 行的 jQuery datepicker的主要内容,如果未能解决你的问题,请参考以下文章

MySQL——binlog

MySQL的binlog详解(转)

mysql二进制日志详解

mysql 以数组的形式插入更新表

(转)Mysql数据库之Binlog日志使用总结

Mysql数据库之Binlog日志使用总结