在页面内加载页面或将js变量传递给php

时间:2012-02-17 15:28:18

标签: php javascript ajax

我有一个php页面,里面还有另一个php页面,这个php页面有一个paginator,是不是每次我分页它只会加载内页而不是整个页面?

我试图通过使用AJAX解决这个问题,因为你可以看到我的第一篇文章,但我遇到了这个问题,我需要获取我发送给ajax的字母和页面并再次使用它进行分页,所以它会就像javascript将其变量发送到php我试过这个:

 <script>
    function pagereturn()
    {
        return getpage;
    }
 </script>
 <?php  
     $pageno = pagereturn();
     echo $pageno;
  ?>

    function passPaginationAndLetter(page)
    {
    if (page=="")
      {
      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;
        }
      }
    getpage = page;
    xmlhttp.open("GET","otherpage.php? letter="+getletter+"&pageno="+page,true);
    xmlhttp.send();

    }

    var page = 1;
    $("#nextButton").click(function(){
        page = page+1;
        passPaginationAndLetter(page);
    });

但不幸的是我最终没有结果并且破坏了我的代码。 btw getpage是我从另一个函数中获取的一个变量。

非常感谢,我仍然是javascript的新手,因此我向你寻求帮助。 :)

--- child.php的分页代码----     {

}
else
{
if ($pageno == 1) {
//echo " FIRST PREV ";
}
else
{
echo " <a href='{$_SERVER['PHP_SELF']}?pageno=1'>FIRST</a> ";
$prevpage = $pageno-1;
echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$prevpage'>PREV</a> ";
}   
echo " ( Page $pageno of $lastpage ) ";
if ($pageno == $lastpage)
{
//echo " NEXT LAST ";
}
else
{
$nextpage = $pageno+1;
echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$nextpage'>NEXT</a> ";
echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$lastpage'>LAST</a> ";
}

--- parent.php的分页代码-----

else
{
    echo '<a href = "#" onclick="passPaginationAndLetter("1"); return false;">FIRST</a>';
    $prevpage = $pageno-1;
    echo '<a href = "#" onclick="passPaginationAndLetter('.$prevpage.'); return false;">PREV</a>';
}   
echo " ( Page $pageno of $lastpage ) ";
if ($pageno == $lastpage)
    {

    }
    else
    {
        $nextpage = $pageno+1;                      
        echo '<a id = "nextButton" href = "#" onclick="passPaginationAndLetter('.$nextpage.'); return false;">NEXT</a>';
        echo '<a href = "#" onclick="passPaginationAndLetter('.$lastpage.'); return false;">LAST</a>';                                              
    }

1 个答案:

答案 0 :(得分:0)

好的,试试这个:

假设您有主页,显示所有分页的主页,名为 main.php ,您还有另一个php文件,其中包含所有名为 functions.php的函数< /强>

我假设您在functions.php 中有一个php函数,它会生成您的分页的单个页面(例如getAJAXpage($page))。这个函数生成一个完整的HTML页面,如下所示(记住这只是一个例子,可以通过1000种不同的方式实现):

<?php //functions.php file
...
public function getAJAXpage($page){
    $page = $_REQUEST['page'];//im not pretty sure about this :S
    $elements = getElements($page);//this function returns the set of elements in your page
    echo '<table>';
    foreach($elements as $e){
        echo '<tr><td>'.$e.'</td></tr>';
    }
    echo '</table>';
}
...
?>

你可以在你的php页面中做什么 main.php (显示所有分页的人)这样的事情:

function getAjaxPage(page){ //this is a javascript code in main.php file   
    $.ajax({
        type:'GET',
        dataType:'html',
        url:'the-url-for-your-getAJAXpage-function',
        success:function(data){
            $("#your-pagination-element").html(data);
        }
    });
}

我还假设在您的 main.php 文件中的分页页面的html中,您至少有一组按钮(或图标)来指导分页(下一个,上一个,第一个,最后一个, ...)。所以你可以将这段代码添加到上面的javascript中。

//more javascript in main.php
var page = 1;
$("#nextButton").click(function(){
    page = page+1;
    getAjaxPage(page);
});

以及所有按钮。

注意:在这个答案中我还假设你使用了JQuery libray,非常推荐javascript中的begginers。

希望我帮助过你。祝你好运!