PHP / Ajax - 多个GET参数

时间:2016-05-23 03:24:28

标签: javascript php mysql ajax filtering

基本上我有一系列按钮,我用来过滤数据表。

我的前两个按钮可以正常使用以下内容:

<button onclick="filter('open');" class="open">Open</button>
<button onclick="filter('closed');"class="closed">Closed</button>

该功能如下所示:

function filter(st, location) {
        if(st == "") {
            document.getElementById("exams").innerHTML = "";
            return;
        } else {
            if(window.XMLHttpRequest) {
                var xmlhttp = new XMLHttpRequest();
            } else {
                var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("exams").innerHTML = xmlhttp.responseText;
                }
            };
            xmlhttp.open("GET", "ajax.php?st="+st+"&location="+location, true);
}}

在ajax.php文件中,我正在检查st参数以设置我在查询中使用的变量:

if (isset($_GET["st"])) {
    $status = $_GET["st"];
} else {
    $status = null;
}

$query = "SELECT examID, `status`, site, first_name, last_name, exam_name, institution FROM exams WHERE status = '{$status}'";

现在我想基于另一个按钮点击另一个参数来进一步过滤数据。我不确定要为参数设置什么,但要使其工作。

<button onclick="filter();" class="new-york">New York</button>

1 个答案:

答案 0 :(得分:1)

我想如果我做这样的事情,我可能会考虑使用data属性。这样,您可以传递多个属性以及操作值。那里有一些可扩展性:

<button class="mybutton" data-instructions='{"action":"open","param1":"something","param2":"something else"}'>Open</button>

在ajax上,将数据对象作为$_POST(或$_GET)发送,然后您可以相对轻松地在PHP端抓取它。如果你这样做,你只需要在mybutton类上触发一个动作。可能有一些自动化可以在那里编程。

另一种方法可能是使用innerHTML从被点击的元素中获取内容,然后将其传递给php。

旁注,正如你所知,你的sql是开放注射的。