[V4.5] 裝備分頁

提供WOG各方面的技術問題,並提供最新path更新。

版主: 涅魂, 簫哥, 10度C~


黑咪
 
文章: 161
註冊時間: 2007-12-24 11:23 am
性別: 男生

Re: [V4.5] 裝備分頁

文章黑咪 » 2011-02-07 12:26 pm

謝謝涅大的提醒

可能我增加了v3.5中的wog_message_box吧
所以有div
不過我在原始版本也測試過, 改成var pagebody = parent.wog_view.document.f1.childNodes[0].childNodes;才能成功

其他問題都解決了
只是缺同一物品只算一個的問題還沒有解決
請問涅大, 這個問題是否一定要修改php才行呢?><




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

Re: [V4.5] 裝備分頁

文章涅魂 » 2011-02-07 12:40 pm

這是我在我這邊的V3下擷取的截圖
圖檔
圖中所示,50HP藥有4組,物品種類有三種,物品總數是6個,總頁數是3頁

以我的例子來看,你的問題是總頁數會變成只剩下2頁嗎?照理說用我上面給的程式碼應該是不會有這問題才是 :shock:


圖檔


黑咪
 
文章: 161
註冊時間: 2007-12-24 11:23 am
性別: 男生

Re: [V4.5] 裝備分頁

文章黑咪 » 2011-02-07 1:27 pm

奇怪, 為什麼我要var pagebody = parent.wog_view.document.f1.childNodes[0].childNodes;才行呢

我的是如果只有同一件物品:50HP藥4組, 它不會顯示分頁
但再加上其他2樣物品就會正常顯示了
就是說要不同的物品超於預設的splitnum才會顯示分頁




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

Re: [V4.5] 裝備分頁

文章涅魂 » 2011-02-07 2:11 pm

這是先前沒注意到的問題,下面是修改的程式碼,主要是把showpager這變數去掉,並把showpager的判斷從s1.length/splitnum改成用n/splitnum來處理
代碼: 選擇全部
    //#### arm begin ####
    function arm_view(a,d,temp_id)
    {
       var f=parent.wog_view.document;
       vData=d;
       var s1=a.split(";");
       var splitnum = 2;
       var usepager = parseInt(Gookie('wog_arm_pager'), 10)  == 1;
       message_cls();
       f.write('<form action="wog_act.php" method="post" target="mission" name=f1 >');
       f.write(temp_table1);
       f.write('<thead>');
           //f.write('<tr><td colspan="12" id="pager-block"><input type="checkbox" value="1" onclick="parent.arm_toggle_pager(this.checked)"'+(usepager?'checked="checked"':'')+'/><span id="pager-box"></span></td></tr>');
               f.write('<tr><td colspan="12" id="pager-box"></td></tr>');
          /*f.write('<tr><td colspan="12"><input type="checkbox" value="1" onclick="parent.arm_toggle_pager(this.checked)"'+(usepager?'checked="checked"':'')+'/>');
          for(var i = 0, len = s1.length/splitnum; i < len; ++i) {
             f.write('<a href="javascript:parent.arm_show_page('+i+')">'+(i+1)+'</a> ');
          }
          f.write('</td></tr>');*/
       f.write('<tr><td>裝備/轉移</td><td>物攻</td><td>魔攻</td><td>物防</td><td>魔防</td><td>速度</td><td>職業</td><td>屬性</td><td>能力限制</td><td>名稱</td><td>價格</td><td>販賣/拍賣</td></tr>');
       f.write('</thead>');
       var n = 0;
       var pagenum = 0;
       var str = '';
       for(var i=0;i<s1.length;i++)
       {   
          var s2=s1[i].split(",");
          var temps=srhCount(s2[0]);
          var s3=null;
          if(tmpNum != "")
          {
             s3=tmpNum.split(",");
          }
          for(var j=0;j<temps;j++, ++n)
          {
             if(s3!=null)
             {
                var temp_num="*"+s3[j];
             }else
             {
                var temp_num="";
             }
             var arm_view_color="";
             if(s2[12]=="1"){arm_view_color="bgcolor="+nosend;}
             if(n%splitnum == 0) {
                str += '<tbody id="page-'+(pagenum++)+'">';
             }
             str += '<tr '+arm_view_color+'><td><input type="radio" name="adds" value="'+s2[0]+'"></td><td>'+s2[6]+'</td><td> '+s2[7]+'</td><td>'+s2[1]+'</td><td>'+s2[2]+'</td><td>'+s2[3]+'</td><td>'+s2[11]+'</td><td>'+s_status(s2[13])+'</td><td>力:'+s2[8]+' 速:'+s2[9]+' 智:'+s2[10]+'</td><td>'+s2[5]+temp_num+'</td><td>'+s2[4]+'</td><td><input type="radio" name="items" value="'+s2[0]+','+s2[5]+'"></td></tr>';
             if(n%splitnum == splitnum - 1) {
                str += '</tbody>\n';
             }
          }
       }
       if(n%splitnum !== 0) str += '</tbody>';
       f.write(str);
       f.write('<tr><td colspan="12" ><input type="submit" value="裝備"> <input type="button" value="轉移" onClick="parent.foot_trun(\'arm\',\'move\',document.f1.pay_id.value,document.f1.item_num.value,document.f1.adds)"> <input type="button" value="販賣" onClick="parent.foot_trun(\'arm\',\'sale\',document.f1.pay_id.value,document.f1.item_num.value,document.f1.items)"> <input type="button" value="拍賣" onClick="parent.sale_item(document.f1.items)"></td></tr>');
       f.write('<tr><td colspan="12" >請選擇數量:<select name="item_num">');
       for(var j=1;j<10;j++)
       {
          f.write('<option value="'+j+'" >'+j+'</option>');
       }
       f.write('</select>(使用轉移及販賣記得選擇道具數量)</td></tr>');
       f.write('<tr><td colspan="12" >欲轉移需輸入對方遊戲的帳號 <input type="text" name="pay_id" size="16"></td></tr>');
       f.write(temp_table2);
       f.write('<input type="hidden" name="f" value="arm">');   
       f.write('<input type="hidden" name="act" value="setup">');
    //   f.write('<input type="hidden" name="temp_id" value="'+temp_id+'">');
       f.write('</form>');
       if(n/splitnum > 1) {
           var str = '';
           for(var i = 0, len = n/splitnum; i < len; ++i) {
               str += '<a href="javascript:parent.arm_show_page('+i+')">'+(i+1)+'</a> ';
           }
           f.getElementById('pager-box').innerHTML = '<input type="checkbox" value="1" onclick="parent.arm_toggle_pager(this.checked)"'+(usepager?'checked="checked"':'')+'/>'+str;
           arm_show_page(usepager? 0 : -1);
       }
    }


而pagebody的問題,會因為你作過的修改而有所不同,實際的位置需要看DOM架構才能決定

要一勞永逸的話,就需要其他的方式去定位了,像是利用thead來定位之類的


圖檔


黑咪
 
文章: 161
註冊時間: 2007-12-24 11:23 am
性別: 男生

Re: [V4.5] 裝備分頁

文章黑咪 » 2011-02-07 2:39 pm

謝謝涅大, 已經沒有任何問題了

對了, f.write('<tr><td colspan="12" id="pager-box"></td></tr>');可以沒有分頁的情況下隱藏嗎? 現在多了一個小小空間




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

Re: [V4.5] 裝備分頁

文章涅魂 » 2011-02-07 2:50 pm

有兩種作法,一種就是你說的隱藏,先在td的parent: tr上面加上display: none的屬性,然後要顯示時再將display的內容清除掉

另一種則是永久顯示,不論有沒有分頁,這只要把if(n/splitnum > 1)與對應的右括弧註解起來就行了


圖檔


黑咪
 
文章: 161
註冊時間: 2007-12-24 11:23 am
性別: 男生

Re: [V4.5] 裝備分頁

文章黑咪 » 2011-02-07 2:59 pm

感謝涅大的幫忙

不過第一種的方法我不懂, 所以就取第二種來用了

順便也補上新年快樂!恭喜發財!



上一頁

回到 Online FF Battle-WOG官方聯盟推廣處

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 10 位訪客