这是一个非常简单的功能,如果使用输入标签,遗憾的是我必须使用链接标签,因为我正在使用字母分组来检索不同页面上的值。
这是我找到的链接标记代码,用于保存要提交给ajax的值
echo '<a onclick="passPagination(\'3\');passLetter(\'S\')">NEXT</a>';
我想从另一页打电话给所有字母“s”页面“3”。
function passLetter(str)
{
if (str=="")
{
document.getElementById("retail_group").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("retail_group").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","otherpage.php?letter="+str,true);
xmlhttp.send();
}
function passPagination(str)
{
if (str=="")
{
document.getElementById("retail_group").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("retail_group").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","otherpage.php?pageno="+str,true);
xmlhttp.send();
}
我还想再次调用传递给其他页面的信件,以便我将其作为我的分页链接的参考,这也是此页面中的保留链接。 echo'NEXT';
我真的迷失在这里,因为我不熟悉链接标记和ajax一起工作,同样你可能已经注意到我从ajax ajax代码判断ajax也不是很好。
非常感谢您的帮助,谢谢。
我是ajax的新人。 :)
答案 0 :(得分:2)
解决方案是创建一个具有多个参数的函数:
function passPaginationAndLetter(page, letter)
{
if (page=="" || letter == "")
{
document.getElementById("retail_group").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("retail_group").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","otherpage.php?letter="+letter+"&pageno="+page,true);
xmlhttp.send();
}
现在可以用
调用它 echo '<a onclick="passPaginationAndLetter(\'3\',\'S\')">NEXT</a>';
区别在于你没有调用两个AJAX方法,只有一个。
答案 1 :(得分:0)
我不确定我是否明白你的意思,但我想你想要那样的东西
echo '<a onclick="get(\'S\', '. ($_GET['page'] + 1) .')">NEXT</a>';
function get(letter, page) {
if (!letter) {
document.getElementById("retail_group").innerHTML="";
return;
}
if (!page) {
page = 1;
}
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("retail_group").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","otherpage.php?letter=" + letter + "&pageno=" + page,true);
xmlhttp.send();
}
如果确实如此,请不要忘记在使用之前验证从$ _GET获得的变量,我只是没有,因为它不是重点......
答案 2 :(得分:0)
我认为这就是你要找的东西:
<强> HTML 强>
<a href="#" id="previous" onclick="previous(); return false;">PREVIOUS</a><a href="#" id="next" onclick="next(); return false;">NEXT</a>
<强>的javascript 强>
var current = {
page: 0,
letter: a
};
function ajax(url) {
var xmlhttp = window.XMLHttpRequest || new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.onreadystatechange = function(xmlhttp) {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementByI("retail_group").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
function next() {
ajax("otherpage.php?letter=" + current.letter + "&pageno=" + (++current.page));
}
function previous() {
ajax("otherpage.php?letter=" + current.letter + "&pageno=" + (--current.page));
}
此代码当然不完整,它不会检查页面的最大/最小值,也无法替换字母,但它应该指向正确的方向。