|
1樓 巨大八爪鱼
2010-11-10 21:37
|
|
2樓 巨大八爪鱼
2010-11-10 21:39
ot.showing=Array();
先建立數組。假設當前遍歷到2010年11月10日,對應的表格號(var:itemid)是17。該日期下有一個長3天的活動,也就是持續到12日,那麼當前遍歷到10日是該活動就沒有結束,那麼就不顯示右圓角。
|
|
3樓 巨大八爪鱼
2010-11-10 21:46
此時把活動id和該活動在表格中的顯示順序記錄入數組ot.showing。
循環段結束,接下來遍歷11日。11日中繼承活動10日的那個長3天的活動(xml中已返回),此時遍歷一下數組:
<?js
for(i=0;i<ot.showing.length;i++){
dd=ot.showing[i][0]; //活動id
ddd=ot.showing[i][1]; //表格中的顯示順序
}
?>
|
|
4樓 巨大八爪鱼
2010-11-10 21:46
思路又陷入混亂了……整理一下!
|
|
5樓 巨大八爪鱼
2010-11-10 21:55
簡單寫一下:當變量j在ot.showing中存在記錄時,用空li標籤霸佔當前的位置,然後再輸出當前活動的li標籤,假設那個長3日的活動(以後叫x活動)在10日表格中的顯示序號為1,那麼在11號表格中:
若11號除了x活動外一個活動都沒有,那麼var:activesnum就等於1,遍歷過程如下:
for (j=0;j<activesnum;j++,amn++){
第一次遍歷,var:j等於0,此時剛好指向x活動。由於x活動在10號中的顯示序號為1,當前序號(var:j)是0,那麼10號就不能顯示到……太複雜了,程序中根本無法實現,算了,改用換數組的方法。
|
|
6樓 巨大八爪鱼
2010-11-10 22:04
換數組的方法具體是:
ajax返回的xml中的根節點下有很多日期節點,各日期節點下有很多活動節點。先把這些活動節點遍歷進入數組,等待排序:
var dn=Array(); //活動節點
dn[i]=Array(); //dn[i]中i為表格號,值為各活動
假設dn[表格號]的數據格式是:Array("活動數據組","活動數據組",...))
若dn[17]==Array(Array("標題","內容"),Array("22","33"));
主動把數組位置調換一下,再遍曆數組就可以了。
|
|
7樓 巨大八爪鱼
2010-11-10 22:38
回復:6樓
我改在用php-ajax服務器端排序了
|
|
8樓 巨大八爪鱼
2010-11-11 13:24
//排序 foreach ($stfed as $i=>$v){ //$stfed:昨天的全部活動,$stf:今天的全部活動 //$i:活動編號,$v:活動顯示序號 if (!is_numeric($v)) continue; //若活動顯示序號不是數字 //若昨天的活動編號今天有,則對齊 //$i就是昨天的活動編號,首先判斷今天有沒有這個活動,沒有的話就continue $Is=arraygetid($stf,$i); //鍵名 if ($Is<0) continue; //若今天沒有這個活動 $IS=$str[$Is]; //今天這個活動的顯示序號 //$v:昨天這個活動的顯示序號 //對齊 }
|
|
9樓 巨大八爪鱼
2010-11-11 13:48
//排序 foreach ($stfed as $i=>$v){ //★★這個最好再換一下變量★★ //$stfed:昨天的全部活動,$stf:今天的全部活動 //$i:活動編號,$v:活動顯示序號 if (!is_numeric($v)) continue; # 若活動顯示序號不是數字 //若昨天的活動編號今天有,則對齊 # $i就是昨天的活動編號,首先判斷今天有沒有這個活動,沒有的話就continue $Is=arraygetid($stf,$i); # 鍵名 //★★可能是這個出錯了★★ if ($Is<0) continue; # 若今天沒有這個活動 $IS=intval($str[$Is]); # 今天這個活動的顯示序號 //$v:昨天這個活動的顯示序號 //對齊 # 檢測今天活動的正確位置是否被其他活動佔了 if (isset($std[$v])){ # 佔了就交換位置 $a=$std[$IS]; $b=$std[$v]; $std[$v]=$a; $std[$IS]=$b; //$debug.=$IS."||||".$v."||||".$dstr; //$debug.=sExplode("|",$stfed); //★有誤★ }else{ # 沒占 } }
|
|
10樓 巨大八爪鱼
2010-11-11 13:48
算了,沒時間了
|