我正在努力弄清楚如何实现一个jquery UI日期范围表单,该表单允许根据输入的日期范围修改MySQL查询。理想情况下,我想让我的日期范围表格动态地引入新的查询数据,而不必重新加载页面。我意识到,最好和最简单的方法是使用AJAX将表单数据发送到后端PHP文件。但是,我对如何使用AJAX修改现有查询感到困惑。在我的主要前端文件中,我有一个日期范围表单如下:
<form id="myForm" action="#" method="post" name="myform">
<input type="text" class = "datepicker" id="txtStartDate" placeholder = "Start Date" style = "width : 85px; margin-left: 10px; margin-top: 1mm;"/>
<br />
<input type="text"class = "datepicker" id="txtEndDate" placeholder = "End Date" style = "width : 85px; margin-left: 10px;"/>
<br />
<input type = "button" name = "submit" value = "Go" style = "margin-left: 10px;"/>
</form>
我显然还没有编写AJAX函数,但认为有助于显示我想修改的MySQL查询以包含日期范围功能。以下是在设置日期范围变量之前的样子:
SELECT project, participant, reel, machine, qc_gsr, qc_hr, qc_acz, qc_bre
FROM rtcdb.session
WHERE site = 'ORL001';
这就是我希望在设置PHP变量的日期范围之后的样子:
SELECT project, participant, reel, machine, qc_gsr, qc_hr, qc_acz, qc_bre
FROM rtcdb.session
WHERE site = 'ORL001'
AND download_date >= '$start_date'
AND download_date <= '$end_date';
总而言之,我想使用AJAX将表单日期发送到后端PHP脚本,该脚本可以修改或切换原始文件中的MySQL查询用法,以便根据设置的日期范围进行选择。非常感谢您查看此问题以及您的见解。这对我很有价值。
答案 0 :(得分:1)
$("#myForm").submit(function () { //Ajax event handler on submit
$.ajax({
type: "POST",
data: $(this).serialize(),
url: "pathToYourScript.php",
success: function (response) {
//Warn user everything went okay
},
error: function () {
//Tell there's been an error
}
});
});
在PHP中,只需检查是否设置了$ start_date和$ end_date。如果是肯定的,那么切换查询(确保顺便使用准备好的语句)。
如果您不需要Ajax中的回调,您甚至可以使用$ .post()方法。您需要的一切都在docs。
答案 1 :(得分:-1)
使用此jquery代码
$( “#myForm会”)。提交(函数(){
$.ajax({
url : "data.php",
type : "POST", //(POST or GET it depends up on your form action)
dataType : "JSON",
data : $(this).serialize(),
success : function (data)
{ alert("form submission is successfull"); } ,
error : function () { alert("something went wrong");}
});
});
在php文件中尝试使用POST或GET自动全局变量获取日期,然后将其作为参数传递给sql查询。使用任何好的PHP驱动程序,如pdo,以避免sql注入。