我有两个前/下一个叫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)
我想使用GET中的LoadNumber
来执行类似下面的操作。
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)'
};
答案 0 :(得分: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']来查看你是下一个还是上一个。
if ($_GET['direction'] == 'next') {
// GO NEXT
} else {
// GO PREV
}
顺便说一下,“isset()”只需要2“s”;) 希望这有所帮助,如果我错过了这一点,你可以发表评论!
答案 1 :(得分: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只是使用get请求方法的$ .ajax的简写,所以如果你传入一个带有你正在寻找的键的对象,那么我的猜测是$ .getJSON会把它放到$ _GET中给你抓斗。
另外Kolkin是正确的,这段代码容易受到SQL注入攻击,你应该永远不要将$ _GET,$ _POST或$ _REQUEST中的数据直接插入到你的SQL查询中而不过滤它。您可能会将代码打开以进行恶意注入,这可能会消除数据库中的数据或访问敏感数据并将其返回。
希望这有帮助。