输入的搜索数据传到处理分页功能的js中的时候,其中包含__$$()的部分就显示有“NULL为空或不是对象”的错误。
不知道是不是因为通过javascript传递数据的方式有局限性的关系,不太明白问题出在哪里...主要代码:
搜索页:
<script>function TransData()
{
/*******transport data through jQuery and Url.*******/
var searchData= $("#txtkw").val();
window.open("testDeliver.php?searchData="+searchData); }
</script>
<p>
<input id="txtkw" type="text" value="" />
<input id="Button1" type="button" value="提交" onclick="TransData();" />
</p>
目标页:
<script>
function query_get(){
var querystr = window.location.href.split("?")
return querystr[1];
}
function GetSearch(){
var gets = query_get();
var gets_array = gets.split("&");
for (var i=0; i<gets_array.length;i++)
{var getvar = gets_array[i].split('=');
}
return getvar[1];
}
var os = new ObjSearch();
function Init(){
os.kw = GetSearch(); }
Init();
os.search();</script>
<div class="list"><div id="content"></div>
<div id="pager">
<div id="total"></div><div id="pagelist"></div></div>
</div>
paginate.js搜索部分的代码:
function ObjSearch()
{this.kw = '';
this.displayId = '';
this.search = function()
{
OutputHtml(this);
}
this.searchCpcj= function()
{
var jsonObj = new Array();
var kw = this.kw;
$(vCpcj.cjpage).each(function(index,content){
if(content.cm.indexOf(kw)!=-1)
{
jsonObj.push({"cm":content.cm,"pagen":content.pagen});
}
});
return jsonObj;
}
}
分页部分代码(有报错):
function __$$(id){return document.getElementById(id);}
function GotoPage(num){
Page = num;
OutputHtml(os);
}
var PageSize = 20;
var Page = 1;
function OutputHtml(){
var vobj = arguments[0];
var siteList = '';
siteList = os.searchCpcj();
var obj = eval(siteList);
var sites = obj;
var Pages = Math.floor((sites.length - 1) / PageSize) + 1;
if(Page < 1)Page = 1; //如果当前页码小于1
if(Page > Pages)Page = Pages; //如果当前页码大于总数
var Temp = "";
var BeginNO = (Page - 1) * PageSize + 1;
var EndNO = Page * PageSize;
if(EndNO > sites.length) EndNO = sites.length;
if(EndNO == 0) BeginNO = 0;
if(!(Page <= Pages)) Page = Pages; /***这里__$$("total")的有“NULL为空或不是对象”的错误
__$$("total").innerHTML = "总页数:<strong class='f90'>" + sites.length + "</strong> 显示:<strong class='f90'>" + BeginNO + "-" + EndNO + "</strong>";
if(Page > 1 && Page !== 1){Temp ="<a href='javascript:void(0)' onclick='GotoPage(1)'><<第一页</a> <a href='javascript:void(0)' onclick='GotoPage(" + (Page - 1) + ")'>上一页</a> "}else{Temp = "<<第一页 上一页 "};
var PageFrontSum = 3;
var PageBackSum = 3;
var PageFront = PageFrontSum - (Page - 1);
var PageBack = PageBackSum - (Pages - Page);
if(PageFront > 0 && PageBack < 0)PageBackSum += PageFront;
if(PageBack > 0 && PageFront < 0)PageFrontSum += PageBack;
var PageFrontBegin = Page - PageFrontSum;
if(PageFrontBegin < 1)PageFrontBegin = 1;
var PageFrontEnd = Page + PageBackSum;
if(PageFrontEnd > Pages)PageFrontEnd = Pages;
if(PageFrontBegin != 1) Temp += '<a href="javascript:void(0)" onclick="GotoPage(' + (Page - 10) + ')" title="前10页">..</a>';
for(var i = PageFrontBegin;i < Page;i ++){
Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + i + ")'>" + i + "</a>";
}
Temp += " <strong class='f90'>" + Page + "</strong>";
for(var i = Page + 1;i <= PageFrontEnd;i ++){
Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + i + ")'>" + i + "</a>";
}
if(PageFrontEnd != Pages) Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + (Page + 10) + ")' title='后10页'>..</a>";
if(Page != Pages){Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + (Page + 1) + ");'>下一页</a> <a href='javascript:void(0)' onclick='GotoPage(" + Pages + ")'>最末页>></a>"}else{Temp += " 下一页 最末页>>"}
__$$("pagelist").innerHTML = Temp;
if(EndNO == 0){
__$$("content").innerHTML = "<h1>没有数据</h1>"; /***这里有“NULL为空或不是对象”的错误
return;
}
var html = "";
for(var i = BeginNO - 1;i < EndNO;i ++){
html += "<a href='#' rel='book' title=" +sites[i].cm+ ">";
html += "<p class='url'><span>" +sites[i].cm+ " | "+sites[i].pagen +"</span></p></a>";
}__$$("content").innerHTML = html;
不知道是不是因为通过javascript传递数据的方式有局限性的关系,不太明白问题出在哪里...主要代码:
搜索页:
<script>function TransData()
{
/*******transport data through jQuery and Url.*******/
var searchData= $("#txtkw").val();
window.open("testDeliver.php?searchData="+searchData); }
</script>
<p>
<input id="txtkw" type="text" value="" />
<input id="Button1" type="button" value="提交" onclick="TransData();" />
</p>
目标页:
<script>
function query_get(){
var querystr = window.location.href.split("?")
return querystr[1];
}
function GetSearch(){
var gets = query_get();
var gets_array = gets.split("&");
for (var i=0; i<gets_array.length;i++)
{var getvar = gets_array[i].split('=');
}
return getvar[1];
}
var os = new ObjSearch();
function Init(){
os.kw = GetSearch(); }
Init();
os.search();</script>
<div class="list"><div id="content"></div>
<div id="pager">
<div id="total"></div><div id="pagelist"></div></div>
</div>
paginate.js搜索部分的代码:
function ObjSearch()
{this.kw = '';
this.displayId = '';
this.search = function()
{
OutputHtml(this);
}
this.searchCpcj= function()
{
var jsonObj = new Array();
var kw = this.kw;
$(vCpcj.cjpage).each(function(index,content){
if(content.cm.indexOf(kw)!=-1)
{
jsonObj.push({"cm":content.cm,"pagen":content.pagen});
}
});
return jsonObj;
}
}
分页部分代码(有报错):
function __$$(id){return document.getElementById(id);}
function GotoPage(num){
Page = num;
OutputHtml(os);
}
var PageSize = 20;
var Page = 1;
function OutputHtml(){
var vobj = arguments[0];
var siteList = '';
siteList = os.searchCpcj();
var obj = eval(siteList);
var sites = obj;
var Pages = Math.floor((sites.length - 1) / PageSize) + 1;
if(Page < 1)Page = 1; //如果当前页码小于1
if(Page > Pages)Page = Pages; //如果当前页码大于总数
var Temp = "";
var BeginNO = (Page - 1) * PageSize + 1;
var EndNO = Page * PageSize;
if(EndNO > sites.length) EndNO = sites.length;
if(EndNO == 0) BeginNO = 0;
if(!(Page <= Pages)) Page = Pages; /***这里__$$("total")的有“NULL为空或不是对象”的错误
__$$("total").innerHTML = "总页数:<strong class='f90'>" + sites.length + "</strong> 显示:<strong class='f90'>" + BeginNO + "-" + EndNO + "</strong>";
if(Page > 1 && Page !== 1){Temp ="<a href='javascript:void(0)' onclick='GotoPage(1)'><<第一页</a> <a href='javascript:void(0)' onclick='GotoPage(" + (Page - 1) + ")'>上一页</a> "}else{Temp = "<<第一页 上一页 "};
var PageFrontSum = 3;
var PageBackSum = 3;
var PageFront = PageFrontSum - (Page - 1);
var PageBack = PageBackSum - (Pages - Page);
if(PageFront > 0 && PageBack < 0)PageBackSum += PageFront;
if(PageBack > 0 && PageFront < 0)PageFrontSum += PageBack;
var PageFrontBegin = Page - PageFrontSum;
if(PageFrontBegin < 1)PageFrontBegin = 1;
var PageFrontEnd = Page + PageBackSum;
if(PageFrontEnd > Pages)PageFrontEnd = Pages;
if(PageFrontBegin != 1) Temp += '<a href="javascript:void(0)" onclick="GotoPage(' + (Page - 10) + ')" title="前10页">..</a>';
for(var i = PageFrontBegin;i < Page;i ++){
Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + i + ")'>" + i + "</a>";
}
Temp += " <strong class='f90'>" + Page + "</strong>";
for(var i = Page + 1;i <= PageFrontEnd;i ++){
Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + i + ")'>" + i + "</a>";
}
if(PageFrontEnd != Pages) Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + (Page + 10) + ")' title='后10页'>..</a>";
if(Page != Pages){Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + (Page + 1) + ");'>下一页</a> <a href='javascript:void(0)' onclick='GotoPage(" + Pages + ")'>最末页>></a>"}else{Temp += " 下一页 最末页>>"}
__$$("pagelist").innerHTML = Temp;
if(EndNO == 0){
__$$("content").innerHTML = "<h1>没有数据</h1>"; /***这里有“NULL为空或不是对象”的错误
return;
}
var html = "";
for(var i = BeginNO - 1;i < EndNO;i ++){
html += "<a href='#' rel='book' title=" +sites[i].cm+ ">";
html += "<p class='url'><span>" +sites[i].cm+ " | "+sites[i].pagen +"</span></p></a>";
}__$$("content").innerHTML = html;
<div class="list"><div id="content"></div>
<div id="pager">
<div id="total"></div><div id="pagelist"></div></div>
</div>
<!----调换位置,DOM对象放上面,有可能数据返回了dom对象还没生成导致null引用,放下面就没问题了---->
<script>
function query_get(){
var querystr = window.location.href.split("?")
return querystr[1];
}
function GetSearch(){
var gets = query_get();
var gets_array = gets.split("&");
for (var i=0; i<gets_array.length;i++)
{var getvar = gets_array[i].split('=');
}
return getvar[1];
}
var os = new ObjSearch();
function Init(){
os.kw = GetSearch(); }
Init();
os.search();</script>