首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本框在分页中消失- php

问文本框在分页中消失- php
EN

Stack Overflow用户
提问于 2010-05-06 05:49:51
回答 1查看 654关注 0票数 1

我将通过ajax调用search.html的search.php页面。问题是,因为我已经实现了分页,所以当用户单击“下一步”按钮时,带有来自search.html的搜索关键字的文本框就会“消失”,因为页面转到没有文本框元素的search.php

当用户通过分页浏览记录时,我希望带有搜索关键字的文本框在那里。我是怎么做到的?

search.html:

代码语言:javascript
复制
 <body>
    <form name="myform" class="wrapper">
      <input type="text" name="q"  onkeyup="showPage();" class="txt_search"/>
      <input type="button" name="button" onclick="showPage();" class="button"/>
      <p>
        <div id="txtHint"></div>
        <div id="page"></div>

    </form>
  </body>

search.php相关部分

代码语言:javascript
复制
$self = $_SERVER['PHP_SELF'];
            $limit = 5; //Number of results per page
            $numpages=ceil($totalrows/$limit);

            $query = $query." ORDER BY idQuotes LIMIT " . ($page-1)*$limit . ",$limit";
            $result = mysql_query($query, $conn)
             or die('Error:' .mysql_error());
?>

<div class="caption">Search Results</div>
<div class="center_div">
<table>
    <?php while ($row= mysql_fetch_array($result, MYSQL_ASSOC)) {
        $cQuote =  highlightWords(htmlspecialchars($row['cQuotes']), $search_result);
        ?>
        <tr>
        <td style="text-align:right; font-size:15px;"><?php h($row['cArabic']); ?></td>
            <td style="font-size:16px;"><?php echo $cQuote; ?></td>
            <td style="font-size:12px;"><?php h($row['vAuthor']); ?></td>
            <td style="font-size:12px; font-style:italic; text-align:right;"><?php h($row['vReference']); ?></td>
        </tr>
    <?php } ?>
</table>
</div>

<?php
   //Create and print the Navigation bar
       $nav="";
       if($page > 1) {
            $nav .= "<a href=\"$self?page=" . ($page-1) . "&q=" .urlencode($search_result) . "\">< Prev</a>";

            $first = "<a href=\"$self?page=1&q=" .urlencode($search_result) . "\"><< First</a>" ;
        }

        else {
            $nav .= "&nbsp;";
            $first = "&nbsp;";
        }

       for($i = 1 ; $i <= $numpages ; $i++) {
            if($i == $page) {
                $nav .= "<B>$i</B>";
            }else{
                $nav .= "<a href=\"$self?page=" . $i . "&q=" .urlencode($search_result) . "\">$i</a>";
            }
        }

        if($page < $numpages) {
            $nav .= "<a href=\"$self?page=" . ($page+1) . "&q=" .urlencode($search_result) . "\">Next ></a>";

            $last = "<a href=\"$self?page=$numpages&q=" .urlencode($search_result) . "\">Last >></a> ";
        }

        else {

             $nav .= "&nbsp;";
             $last = "&nbsp;";
        }

        echo "<br /><br />" . $first . $nav . $last;


    }

ajax.js:

代码语言:javascript
复制
var xmlHttp

function showPage(str)
{
    var str = document.myform.q.value;

xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request");
 return;
 }

var url="search.php";
url += "?q="+str+"&list=";
url += "&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}


function stateChanged(){
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
} //end if
} //end function

function GetXmlHttpObject() {
var xmlHttp=null;
try {
// For these browsers: Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}catch (e){
//For Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
} //end function */
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-06 06:04:08

您的下一个和前一个链接也需要使用AJAX。

我提供了一个代码示例,但是您没有提供用于通过AJAX获取search.php的代码。如果您发布了AJAX代码,我可以演示通过AJAX获取下一页和上一页所需进行的更改。

编辑:我将修改showPage函数以接受页码,并使下一个和前一个链接调用:

代码语言:javascript
复制
function showPage(str,page)
{
    var str = document.myform.q.value;
    if(typeof page == 'undefined')
      page = 0;

xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request");
 return;
 }

var url="search.php";
url += "?q="+str+"&page="+page+"&list=";
url += "&sid="+Math.random();
...

然后,您的页面链接应该如下所示:

代码语言:javascript
复制
$nav .= "<a onclick=\"showPage('',$i); return false;\" href=\"$self?page=$i&q=" .urlencode($search_result) . "\">$i</a>";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2777046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档