0

我有两个按钮 prev/next 调用getJSON. 我想根据单击的按钮更改查询。这是我的按钮和getjson语句

<input class="buttonsr" type="button" onClick="next()" name="NextLoad" value="Next Load"><input class="buttonsr" type="button" onClick="prev()"name="PrevLoad" value="Prev. Load">
$.getJSON("loadloads.php", document.getElementById('LoadNumber').value, jsonhandler)

我想使用LoadNumberGET 执行类似下面的操作。

if isset($_GET['prev']){
    $find = 'Where L.$_GET['LoadNumber'] > (max)LoadNumber FROM tblLoads'
}
if isset($_GET['next']){
    $find = 'Where L.$_GET['LoadNumber'] < (min)LoadNumber FROM tblLoads'
}
else{
    $find = 'L.LoadNumber = (SELECT MAX(LoadNumber) FROM tblLoads)'
};
4

2 回答 2

0

您应该使用相同的函数并将参数传递给服务器。就像是

<input class="buttonsr" type="button" onClick="page('next')" name="NextLoad" value="Next    Load">

function page(direction) {
   $.getJSON("loadloads.php?direction="+direction,document.getElementById('LoadNumber').value,jsonhandler)
}

在服务器端,使用 $_GET['direction'] 来查看您是走 NEXT 还是 PREVIOUS。

if ($_GET['direction'] == 'next') { 
   // GO NEXT
} else {
   // GO PREV
}

顺便说一句,“isset()”只需要 2 个“s”;)希望这会有所帮助,如果我错过了重点,您可以发表评论!

于 2013-04-17T19:06:02.850 回答
0

我可能错了,但我相信如果你想访问 $_GET 超级全局中的“LoadNumber”,那么你需要为 $.getJSON 中的数据参数传入一个对象,如下所示:

    $.getJSON("loadloads.php", { LoadNumber:$('#LoadNumber').val() }, jsonhandler);
    // NOTE: I used jquery shorthand instead of document.getElementById() to get the value
    // simply to shorten it up.

我以前没有使用过 $.getJSON() ,但是从文档中: http
://api.jquery.com/jQuery.getJSON/ 它说 $.getJSON 只是 $.ajax 使用 get 请求方法的简写,所以如果你传递一个带有您要查找的密钥的对象,然后我的猜测是 $.getJSON 会将其放入 $_GET 中供您获取。

Kolkin 也是正确的,这段代码容易受到 SQL 注入的影响,你不应该直接将来自 $_GET、$_POST 或 $_REQUEST 的数据插入到你的 SQL 查询中而不过滤它。您可能会向恶意注入打开代码,这些注入可能会清除数据库中的数据或访问敏感数据并将其返回。

希望这可以帮助。

于 2013-04-17T19:46:49.673 回答