作者KawasumiMai (魔物を討つ者)
看板PHP
標題[請益] form控制項陣列傳值結果?
時間Thu Oct 6 05:27:52 2011
看到別人寫的
雖然別人是用cgi
不過基本原理應該是一樣吧
現在在一個form內
有五個checkbox
其中name都叫做attr
所以是一個陣列
但是value都不同
接著按下送出給php之後
php內寫上echo $_POST[attr]
不知道為什麼都只能顯示該陣列最後一個有勾的value
那麼請問那個cgi是怎樣處理多選的問題呢?
要用其他方法知道attr有哪些資料嗎?
請問該怎麼做
--
「杏、どうしたんだ?」
「どっ、どうもしてないわよ。あんたこそ、椋とデートじゃなかったの?」
「ずぶ濡れじゃねぇかよ、
ふっふっ」
「来ないで!!!!!!!!!!!!!!……
来ないで…お願いだから…」
京都アニメ クラナド~AfterStory~第25話 「もうひとつの世界─杏編」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.210.139
1F:→ knives:它當然只會顯示有勾的值阿 10/06 05:37
2F:→ KawasumiMai:但是複選呢?出來的值只有最後一個 10/06 05:57
3F:→ KawasumiMai:假設我勾135只會出現5 10/06 05:57
4F:推 scribeTW:你要取成attr[] 10/06 07:46
5F:→ KawasumiMai:不好意思可以說仔細一點嗎? 10/06 07:54
6F:→ KawasumiMai:<input type="checkbox" name="attr" 有複數行 10/06 07:54
7F:→ KawasumiMai:請問接收時要打怎樣? 10/06 07:55
8F:→ KawasumiMai:$_POST[?] 10/06 07:55
9F:→ averywu:<input type="checkbox" name="attr[1]" 10/06 08:30
10F:→ averywu:$_POST[attr][1] 10/06 08:30
11F:→ tnstiger:name="attr[]" 所有checkbox都這樣取 10/06 09:30
12F:→ tnstiger:$_POST['attr'][0] -> 第一個打勾的 10/06 09:31
13F:→ tnstiger:$_POST['attr'][1] -> 第二個打勾的 以此類推 10/06 09:32
14F:→ KawasumiMai:不好意思補充問一下,為什麼原先網站沒有這樣取就可以 10/06 10:34
15F:→ KawasumiMai:這是php跟cgi在功能上的限制差異嗎? 10/06 10:34
16F:→ arrack:PHP 同名的參數,只會取一個,所以要自行加上[] 10/06 11:07
17F:→ KawasumiMai:不好意思接下來又有另外的延續問題 10/06 11:18
18F:→ KawasumiMai:剛剛依照tnstiger大的方法,php已經取得正確 10/06 11:18
19F:→ KawasumiMai:attr出來的結果是完美的Array,不過這次出在js 10/06 11:18
20F:→ KawasumiMai:原先的html因為關聯性的關係,checkbox有呼叫js 10/06 11:19
21F:→ KawasumiMai:第一個checkbox是皆否,呼叫的是取消後面所有checkbox 10/06 11:20
22F:→ KawasumiMai:document.form.attr[i].checked = false 10/06 11:20
23F:→ KawasumiMai:其他呼叫的是取消第一個皆否checkbox 10/06 11:20
24F:→ KawasumiMai:document.form.attr[0].checked 10/06 11:20
25F:→ KawasumiMai:這下變成js失效了,因為名稱變成attr[] 10/06 11:20
26F:→ KawasumiMai:而用attr[][i]跟attr[][0]取代也失敗,請問該怎麼辦 10/06 11:21
27F:→ MOONRAKER:每個input另外取ID,用document.getElementById(id) 10/06 15:49
28F:→ MOONRAKER:參考到各個input,global objects已經是過時寫法 10/06 15:49
29F:→ MOONRAKER:不要再用。嫌太長可以寫個函數包起來,例如 function 10/06 15:50
30F:→ MOONRAKER:g(id) { return document.getElementById(id); } 這樣 10/06 15:51
31F:→ MOONRAKER:以後每次只要寫 g("input1").value=... 就好 10/06 15:51