0

我正在努力弄清楚如何实现一个 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 查询用法,以根据设置的日期范围进行选择。非常感谢您查看此问题并提供您的见解。对我来说很有价值。

4

2 回答 2

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() 方法。您需要的一切都在文档中。

于 2013-06-24T18:46:58.743 回答
-1

使用这个 jquery 代码

$("#myForm").submit(function(){

$.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 注入。

于 2013-06-24T18:58:53.013 回答