一個網頁中放置了
while($row=mysql_fetch_array($result))
{
echo "<input type='checkbox' name='".$row["autoindex"]."'>".$row["name"];
}
echo "<input type='checkbox' name='all' onclick='all_c()'>全選";
做出很多個checkbox,在最後又放了一個全選的checkbox

我的需求是

當我按下全選後我其它的checkbox會自動被選取,這該怎麼做呢

是要用物件陣列去跑嗎?但checkbox的name是從資料庫撈出來的流水號,有跳號的可能
這會影響嗎?希望可以給我一個方向.....
文章關鍵字
照你的原程式可以如下




如果輸出的動態資料列用 包住可以利用children找


<?php
while($row=mysql_fetch_array($result))
{
echo "<input type='checkbox' name='".$row["autoindex"]."'>".$row["name"];
}
?>

echo "<input type='checkbox' name='all' onclick='all_c()'>全選";


小弟有個問題
我使用了es_mato所提供的方法

for(i=0;i<document.all.length;i++)
with(document.all( i ))
if(tagName=='INPUT' && type=='checkbox' ) checked=true;
}

為何會導致選取之後卻無法取消?我記得原本的checkbox是可以取消的
難道是上面的方法導致無法取消的嗎?
if(tagName=='INPUT' && type=='checkbox' ) checked=false;


---->> checked=false;
es_mato wrote:
if(tagName...(恕刪)


但是如果用這個寫法,當使用者點選checkbox時就無法將其它的checkbox給全選起來了
有沒有兩全其美的方法呢
建議你將name改為固定同一個名稱﹐而value值才是從資料庫撈出來的﹐這樣你就可以直接使用物件陣列的方式來判斷。
不過﹐要記得﹐你的checkbox如果只有一項時而以物件陣列的方式會出錯﹐所以在全選之前要先判斷你的checkbox是只有一筆還是多筆。

而在submit之後的值如果是多個選擇的﹐會是以","分隔﹐這時再以split之類的函數去切成陣列即可。
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!