<?php
$flash_page_id_con = array(); $flash_page_query = "select p.products_id,p.products_image,pd.products_name from " . TABLE_PRODUCTS ." p, ". TABLE_PRODUCTS_DESCRIPTION . " pd where p.`products_id`=pd.`products_id` AND master_categories_id = " . zen_get_products_category_id($products_id);
$flash_page = $db->Execute($flash_page_query);
while(!$flash_page->EOF){
$flash_page_id_con[] = $flash_page->fields['products_id'];
$flash_page->MoveNext();
}
$flash_page_id = implode(",", $flash_page_id_con);
?>
<script>
var productID = new Array();
productID = [<?php echo $flash_page_id;?>];
</script>然后后面我用到productID这个数组,当alert(productID[n_page]);(这里npage为不大于最大下标的一个数)显示为未定义,看源码productID是这样的productID = [748,745,747,749,750,751,752,753,755,756,758,759,760,761,762,763,764,765,766,767,768,769,770,780,781,782,783,784,785,795,796,797,798,799,800,801,802,803,804,806,807];
请问这是什么问题?应该怎么解决?
$flash_page_id_con = array(); $flash_page_query = "select p.products_id,p.products_image,pd.products_name from " . TABLE_PRODUCTS ." p, ". TABLE_PRODUCTS_DESCRIPTION . " pd where p.`products_id`=pd.`products_id` AND master_categories_id = " . zen_get_products_category_id($products_id);
$flash_page = $db->Execute($flash_page_query);
while(!$flash_page->EOF){
$flash_page_id_con[] = $flash_page->fields['products_id'];
$flash_page->MoveNext();
}
$flash_page_id = implode(",", $flash_page_id_con);
?>
<script>
var productID = new Array();
productID = [<?php echo $flash_page_id;?>];
</script>然后后面我用到productID这个数组,当alert(productID[n_page]);(这里npage为不大于最大下标的一个数)显示为未定义,看源码productID是这样的productID = [748,745,747,749,750,751,752,753,755,756,758,759,760,761,762,763,764,765,766,767,768,769,770,780,781,782,783,784,785,795,796,797,798,799,800,801,802,803,804,806,807];
请问这是什么问题?应该怎么解决?
如果没问题再alert(productID.length);看看
n_page要大于等于0小于productID.length
<script type="text/javascript">
page_go('recent_flash_small','8', productCurrent, productTotal, '<?php echo $_GET['products_id']?>');
</script>函数是这样的
function loadImage(objId,urls){
var loader = new ImageLoader(urls);
loader.loadEvent = function(url){
obj = $(objId);
obj.src = url;
}
loader.load();
}function rewrite_url(pname , pid){
if(pid == null || pid == "undefined" ) {return ""};
var re = /[^a-zA-Z0-9]/ig;
var url = "";
if(FRIENDLY_URLS != null && FRIENDLY_URLS == 'true'){
url = baseURL + pname.replace(re,"-") + "_p" + pid + ".html";
}
else{
url = linkURL+pid;
}
return url;
}
/////////////////
/*the li scroll*/
function page_go(id,num, c,t,cid){
var Prev = id + "Prev";
var Next = id + "Next";
var pageId = id + "Page";
var Page = 0;
var currentPage = 1;
var PageNumber = Math.ceil(t/num);
var activeClick = true;
var gopage = 0;
alert(pageId);
if(num>t){activeClick = false;}
if(c >= num){
if(t!=null){
gopage = Math.ceil(c/num);
if(c % num == 0) gopage++;
}
updateProduct('goto', gopage);
}
function updateProduct(type, gopage) {
if(type=='pre') {Page -= parseInt(num);currentPage--};
if(type=='next') {Page += parseInt(num);currentPage++};
if(type=='goto' && gopage != null) {Page = (gopage-1) * num ; currentPage = gopage;}
alert(Page);
if(Page<0) {
Page=num*(PageNumber-1);
currentPage=PageNumber;
}
if(Page>=t) {
Page=0;
currentPage=1;
}
$(pageId).innerHTML = currentPage +'/'+PageNumber;
alert($(pageId).innerHTML);
for(i=0;i<num;i++){
alert(i);
n_page = i + Page;
$('cell_price'+i).innerHTML=productPrice[n_page];
$('cell_link'+i).href = rewrite_url(productName[n_page], productID[n_page]);
$('cell_link'+i).title = productName[n_page];
alert(n_page);
alert(productID);
alert(productID[n_page]);
alert(productID.length);
$('li'+i).style.display='block';
if(productID[n_page] == null){
$('li'+i).style.display='none';
continue;
}
if(num==4)$('cell_img'+i).src=baseURL+"images/root/loading_img_b.gif";
if(num==8)$('cell_img'+i).src=baseURL+"images/root/loading_img_s.gif";
$('cell_img'+i).alt=productName[n_page];
$('cell_img'+i).title=productName[n_page];
loadImage('cell_img'+i,imgURL+productIMG[n_page]);
if(cid != null){
if(cid == productID[n_page]){
$('cell_img'+i).className = 'allborder';
}
else{
$('cell_img'+i).className = '';
}
}
}
alert(2222);
} $(pageId).innerHTML = currentPage +'/'+PageNumber;
$(Prev).onclick = function () {
if(!activeClick) return false;
updateProduct('pre');
}
$(Next).onclick = function () {
if(!activeClick) return false;
updateProduct('next');
}
}
<div class="fl relative pad_1em" id="product_flash_page">
<span id="recent_flash_smallPrev" class="recent_flash_prev" title="Back"></span>
<span id="recent_flash_smallNext" class="recent_flash_next" title="Next"></span><ul class="margin_t max_flash_width" id="recent_flash_small"><?php
$flash_page_id_con = array();
$flash_page_images_con = array();
$flash_page_price_con = array();
$flash_page_name_con = array(); $flash_page_query = "select p.products_id,p.products_image,pd.products_name from " . TABLE_PRODUCTS ." p, ". TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id=pd.products_id AND products_status='1' AND master_categories_id = " . zen_get_products_category_id($products_id);
$flash_page = $db->Execute($flash_page_query);
while(!$flash_page->EOF){
$flash_page_items[] = $flash_page->fields;
$flash_page_id_con[] = $flash_page->fields['products_id'];
$flash_page_images_src = is_int(strpos($flash_page->fields['products_image'],','))? substr($flash_page->fields['products_image'],0,strpos($flash_page->fields['products_image'],',')):$flash_page->fields['products_image'];
$flash_page_images_con[] = '"'.(zen_not_null($flash_page->fields['products_image']) ? $flash_page_images_src : PRODUCTS_IMAGE_NO_IMAGE ).'"';
$flash_page_price_con[] = '"'.$currencies->display_price(zen_get_products_base_price($flash_page->fields['products_id']),zen_get_tax_rate($product_check->fields['products_tax_class_id'])).'"';
$flash_page_name_con[] = '"'.zen_output_string(zen_get_products_name($flash_page->fields['products_id'])).'"';
$flash_page->MoveNext();
}
$flash_page_id = implode(",", $flash_page_id_con);
$flash_page_images = implode(",", $flash_page_images_con);
$flash_page_price = implode(",", $flash_page_price_con);
$flash_page_name = implode(",", $flash_page_name_con);
$flash_page_display_num = ($flash_page->RecordCount()< 8 )? $flash_page->RecordCount(): 8;
?>
<?php for($i = 0; $i< $flash_page_display_num ; $i++){?>
<li id="li<?php echo $i;?>" style=" display:block; float:left; width:95px; list-style:none;">
<a class="ih" id="cell_link<?php echo $i;?>" href="<?php echo zen_href_link(zen_get_info_page($flash_page_items[$i]['products_id']), 'products_id=' . $flash_page_items[$i]['products_id']);?>"><?php echo zen_image_OLD('../'.DIR_WS_IMAGES.$flash_page_items[$i]['products_image'],SEO_COMMON_KEYWORDS.' '.$flash_page_items[$i]['products_name'],79,79,'id="cell_img'.$i.'" class="'.(($flash_page_items[$i]['products_id'] == $_GET['products_id']) ? 'allborder':'').'"');?></a><p><strong id="cell_price<?php echo $i?>" class="red"><?php echo $currencies->display_price((zen_get_products_base_price($flash_page_items[$i]['products_id']) == 0 ? zen_get_products_sample_price($flash_page_items[$i]['products_id']): zen_get_products_base_price($flash_page_items[$i]['products_id'])),zen_get_tax_rate($product_check->fields['products_tax_class_id'])); ?></strong></p>
</li>
<?php
//print_r($flash_page_items[$i]);
}
?>
</ul>
</div>
<script type="text/javascript">
var productTotal = <?php echo intval($flash_page->RecordCount());?>;
var productCurrent = <?php echo intval(array_search($_GET['products_id'],$flash_page_id_con));?>;
var productID = new Array();
var productPrice = new Array();
var productIMG = new Array();
var productName = new Array();
var imgURL = baseURL+'images/';
var linkURL = baseURL+"index.php?main_page=product_info&products_id=";
var productSourcePrice = null;
var productSubName = null;
var productName = null;
<?php ?>
var productFlg = null;
productID = [<?php echo $flash_page_id;?>];
productPrice = [<?php echo $flash_page_price;?>];
productIMG = [<?php echo $flash_page_images;?>];
productName = [<?php echo $flash_page_name;?>];
</script>
<script type="text/javascript">
var productTotal = 41;
var productCurrent = 9;
var productID = new Array();
var productPrice = new Array();
var productIMG = new Array();
var productName = new Array();
var imgURL = baseURL+'images/';
var linkURL = baseURL+"index.php?main_page=product_info&products_id=";
var productSourcePrice = null;
var productSubName = null;
var productName = null;
var productFlg = null;
productID = [748,745,747,749,750,751,752,753,755,756,758,759,760,761,762,763,764,765,766,767,768,769,770,780,781,782,783,784,785,795,796,797,798,799,800,801,802,803,804,806,807];
productPrice = ["$94.27","$95.43","$94.27","$95.43","$95.43","$95.43","$94.27","$94.27","$93.43","$96.24","$95.43","$94.27","$95.43","$94.27","$95.43","$94.27","$94.27","$95.43","$95.43","$95.43","$94.27","$94.27","$94.27","$95.43","$95.43","$94.27","$94.27","$94.27","$94.27","$94.27","$95.43","$95.43","$95.43","$98.57","$95.43","$95.43","$97.76","$95.43","$95.43","$95.43","$95.43"];
productIMG = ["dresses/BN003.jpg","dresses/BN001.jpg","dresses/BN002.jpg","dresses/BN004.jpg","dresses/BN005.jpg","dresses/BN007.jpg","dresses/BN008.jpg","dresses/BN006.jpg","dresses/BN009.jpg","dresses/BN010.jpg","dresses/BN011.jpg","dresses/BN012.jpg","dresses/BN013.jpg","dresses/BN014.jpg","dresses/BN015.jpg","dresses/BN016.jpg","dresses/BN017.jpg","dresses/BN018.jpg","dresses/BN020.jpg","dresses/BN019.jpg","dresses/BN021.jpg","dresses/BN022.jpg","dresses/BN023.jpg","dresses/BN025.jpg","dresses/BN024.jpg","dresses/BN026.jpg","dresses/BN027.jpg","dresses/BN028.jpg","dresses/BN029.jpg","dresses/BN030.jpg","dresses/BN031.jpg","dresses/BN032.jpg","dresses/BN033.jpg","dresses/BN034.jpg","dresses/BN035.jpg","dresses/BN036.jpg","dresses/BN037.jpg","dresses/BN038.jpg","dresses/BN039.jpg","dresses/BN041.jpg","dresses/BN042.jpg"];
productName = ["bridesmaid dress style:VPBN003","bridesmaid dress style:VPBN001","bridesmaid dress style:VPBN002","bridesmaid dress style:VPBN004","bridesmaid dress style:VPBN005","bridesmaid dress style:VPBN007","bridesmaid dress style:VPBN008","bridesmaid dress style:VPBN006","bridesmaid dress style:VPBN009","bridesmaid dress style:VPBN010","bridesmaid dress style:VPBN011","bridesmaid dress style:VPBN012","bridesmaid dress style:VPBN013","bridesmaid dress style:VPBN014","bridesmaid dress style:VPBN015","bridesmaid dress style:VPBN016","bridesmaid dress style:VPBN017","bridesmaid dress style:VPBN018","bridesmaid dress style:VPBN020","bridesmaid dress style:VPBN019","bridesmaid dress style:VPBN021","bridesmaid dress style:VPBN022","bridesmaid dress style:VPBN023","bridesmaid dress style:VPBN025","bridesmaid dress style:VPBN024","bridesmaid dress style:VPBN026","bridesmaid dress style:VPBN027","bridesmaid dress style:VPBN028","bridesmaid dress style:VPBN029","bridesmaid dress style:VPBN030","bridesmaid dress style:VPBN031","bridesmaid dress style:VPBN032","bridesmaid dress style:VPBN033","bridesmaid dress style:VPBN034","bridesmaid dress style:VPBN035","bridesmaid dress style:VPBN036","bridesmaid dress style:VPBN037","bridesmaid dress style:VPBN038","bridesmaid dress style:VPBN039","bridesmaid dress style:VPBN041","bridesmaid dress style:VPBN042"];
</script>
<script type="text/javascript">
page_go('recent_flash_small','8', productCurrent, productTotal, '756');
</script>
productID = [ <?php echo $flash_page_id;?>];
alert(productID);//在这里alert看看
这里的赋值,后面的alert了值是对的,但是alert前面那个就没有输出,为什么?
for(i=0;i<num;i++){
alert(i);
n_page = i + Page;
alert(n_page);
$('cell_price'+i).innerHTML=productPrice[n_page];
$('cell_link'+i).href = rewrite_url(productName[n_page], productID[n_page]);
$('cell_link'+i).title = productName[n_page];
$('li'+i).style.display='block';
alert(n_page);
if(productID[n_page] == null){
$('li'+i).style.display='none';
continue;
}
if(num==4)$('cell_img'+i).src=baseURL+"images/root/loading_img_b.gif";
if(num==8)$('cell_img'+i).src=baseURL+"images/root/loading_img_s.gif";
$('cell_img'+i).alt=productName[n_page];
$('cell_img'+i).title=productName[n_page];
loadImage('cell_img'+i,imgURL+productIMG[n_page]);
if(cid != null){
if(cid == productID[n_page]){
$('cell_img'+i).className = 'allborder';
}
else{
$('cell_img'+i).className = '';
}
}
}
执行到这个循环的时候
alert(i);输出0正确
第一个alert(n_page);输出也正确,然后就不再有alert窗口跳出,也就是说第二个执行不到
然后我加alert看这中间的哪些有问题,
$('cell_price'+i).innerHTML=productPrice[n_page];
$('cell_link'+i).href = rewrite_url(productName[n_page], productID[n_page]);
这两个没有问题
下面的productName[n_page]也正常,但是$('cell_link'+i).title这个没有内容输出
$('cell_link'+i).title = productName[n_page];
$('li'+i).style.display='block';
这两行注释掉,这里还是过不去,第二个alert(n_page)还是没有输出,循环还是进行不下去
$('cell_price'+i).innerHTML;
$(pageId).innerHTML
$('cell_link'+i).title
alert这些值一会显示undefined,一会有值
只alert($('cell_price'+i));是有显示的,显示为[object Object]
还有baseURL现在有值了吗?
在rewrite_url函数里alert调试
执行
$(Prev).onclick = function () {
if(!activeClick) return false;
updateProduct('pre');
}
$(Next).onclick = function () {
if(!activeClick) return false;
updateProduct('next');
}
这里的时候前面的$('cell_price'+i).innerHTML这些显示未定义,后面的数组正常。
那执行到哪一步出问题了呢?
LZ要养成一个习惯,出现问题,要知道哪一步执行不了,可以通过alert找出来,一步一步跟踪,这是最基本的;等执行不下去的时候,alert看看各种参数是否正常,是否是自己预期的