使用 datepicker jquery ajax php 更新 mysql 数据库字段
Posted
技术标签:
【中文标题】使用 datepicker jquery ajax php 更新 mysql 数据库字段【英文标题】:Update mysql database fields with datepicker jquery ajax php 【发布时间】:2015-02-20 22:00:09 【问题描述】:-
如何更新 mysql 字段而不刷新页面,从数据库的结果列表中。
使用 日期选择器
在单个 .php 页面中?
例子:
order_report.php
$query = $this->db->query("select order_id,
date_format(date_payed,'%d-%m-%Y') as date_payed,
from oc_order");
***code left out to save space***
foreach ($res as $orders)
print $orders['order_id'];
<input type="text" name="datepicker" id="datepicker" value="<?php echo $orders['date_payed']; ?>"/>
$query = $this->db->query("update oc_order SET date_payed='$datepicker' WHERE order_id='$orders['order_id'];'");
jQuery
<script>
$(document).ready(function()
$("#datepicker").datepicker(
dateFormat: 'yy-mm-dd'
);
)
</script>
【问题讨论】:
这是关于服务器/客户端通信的常见误解。 PHP 在服务器端。 javascript (datepicker) 在客户端。您显然需要一个 AJAX 调用来更新您的数据库。但没有银弹。有人可以给你写代码,这样你就可以复制/粘贴并让它工作,但下次会发生什么?让谷歌去看看人们如何使用 php 和 AJAX。我保证这将是值得的。如果您遇到困难,请回到 SO 并提出一个具体问题。亲切的问候。 我已经尝试了 3 天来完成这项工作。最大的问题是日期选择器在 foreach 数组中时不会加载。 从 html 和 PHP 表单提交的基础知识以及 PHP 的解析方式开始。您的 php 代码示例没有任何意义。 当然不会加载。您正在为每个 datepicker 实例输出 SAME domid=...
。 dom ID必须在整个文档中是唯一的。
所以在 php 方面...
【参考方案1】:
我假设您要问的是您希望 datepicker 在您选择日期时更新您的 mysql 表,而无需刷新该页面。您提供的代码有点混乱,但我整理了一些可能会有所帮助的内容。
我猜您代码中的 input
字段实际上应该是您获取值的 html。
至于将所有内容保存在一个页面上...我认为这是不可能的。为获得最佳结果,您必须创建一个新的.php
页面来接受日期选择器的值,该值通过$.ajax
调用传递,其中显示date
。如果您在同一页面上执行此操作,您最终可能会通过 success
函数中的 data
参数返回大量不需要的 html 数据,但它很可能会引发错误并获得error
函数回调。
在这个例子中,我调用了 php 页面process_date.php
。
HTML:
<input type="text" id="datepicker" value="<?php echo $orders['date_payed']; ?>"/>
JS:
<script type="text/javascript">
$(document).ready(function ()
$("#datepicker").datepicker(
dateFormat: "yy-mm-dd",
onSelect: function ()
var date = $("#datepicker").val();
$.ajax(
type: "POST", //or GET. Whichever floats your boat.
url: "path/to/process_page.php",
data: date: date ,
success: function(data)
alert(data);
//Write code here for you successful update (if you want to)
,
error: function()
alert("Error.");
);
);
);
</script>
PHP (process_date.php)
<?php
$date = $_POST['date']; //if you used GET in your ajax, then use $_GET here instead
$query = $this->db->query("select * from oc_order");
***code left out to save space***
foreach ($products as $orders)
print $orders['order_id'];
$query = $this->db->query("update oc_order SET date_payed='$date' WHERE order_id='$orders['order_id'];'");
echo "Success";
?>
注意:并不是说你没有,但不要忘记在将 PHP 数据发送到服务器之前始终对其进行清理,以避免受到 SQL Injection 的攻击。即使您使用参数化查询,它仍然是一个好主意。
【讨论】:
对不起,我的问题有点混乱。我有一张包含商店所有订单的表格,在最后一列中,我想从 datepicker 中选择一个日期并将该行更新到数据库中以上是关于使用 datepicker jquery ajax php 更新 mysql 数据库字段的主要内容,如果未能解决你的问题,请参考以下文章