2011-09-04 89 views
2

請幫忙。複選框和php

我想動態地使用php命名我的複選框。我正在使用POST。 我運行的問題是$元不起作用。 $ _POST 的結果不顯示任何複選框。

在此先感謝您的幫助。

foreach(array_keys($cart_array) as $element) 
{ 
    print "<input type = 'checkbox' checked name = '{$element}' />"; 
} 

但像

foreach(array_keys($cart_array) as $element) 
{ 
    print "<input type = 'checkbox' checked name = '$element}' />"; 
} 

的作品就好了。注意缺失的{near $元素}。此代碼將顯示哪些複選框爲 !印刷陣列將有一個額外的「}」

Array 
(
    [Tomato_and_Cheese_small] => on 
    [Tomato_and_Cheese_small}] => 1 
    [Tomato_and_Cheese_large] => on 
    [Tomato_and_Cheese_large}] => 1 
) 

ps。還有其他一些輸入,比如文字,可以很好地發佈到$ _POST。 print_r($ cart_array)也可以正常工作。

+0

什麼是$內容cart_array overrided?你可以執行'print_r($ cart_array)'嗎? – sikas

+0

,並提供'print_r($ _ POST)'。 – sikas

+0

陣列 ( [Tomato_and_Cheese_small] => 2 [Tomato_and_Cheese_large] => 1 ) – kevin

回答

1

瀏覽器發送只有當它們被選中單選按鈕的值。

而且,每個單選按鈕必須具有相同的名稱(如果你想用戶能夠只是其中之一檢查)。只有價值變動:

print '<input type=checkbox checked value="'.htmlspecialchars($element).'" name=checked_items />'; 

POST這一點,並檢查$_POST['checked_items']

+0

@ arnaud抱歉,我試圖說複選框,而不是單選按鈕。 – kevin

0

如果複選框未選中它不會出現在後的參數。

+0

謝謝。這是一個複選框,我遇到了問題,而不是單選按鈕。 – kevin

0

實際情況是,他與太后,與相同名稱的名稱$元素和文本字段的複選框的值。所以在$ _ POST複選框名稱$元素得到了由文本字段$元素