2011-11-29 28 views
0

我通過cTools嚮導(主要是php)爲Drupal 6創建表單,並且我有幾個可選的選擇框。我有我的選項設置,如下所示:HTML/PHP表單 - 如何將可選的未選中的下拉列表保存爲空/空而不是選項?

0 |選擇

1 |選項1

2 |選項2

3 |選項3

4 |選項4

或者對某些人來說,比如年份或州選擇,我使用array_unshift將「選擇」附加到動態構建的列表的前面或從別處引用的列表的前面。

當沒有用戶輸入時,當我希望它們什麼都不返回時,這些選擇框會返回「Select」值,0或-1。

我對PHP很新,所以我可能不會以正確的方式提出這個問題,因爲我沒有發現任何關於它應該是一個相當常見的問題。任何人有任何想法如何做到這一點,或如何更好地說我的問題找到答案?謝謝!

回答

1

由於該字段已發佈,因此您將始終會收到$_POST中的某種字符串值。我通常提供一個空白值(<option value="">Select</option>),它給了我一個PHP端的空白字符串。然後你可以(如果你不介意鑄造「0」 - > false)做類似

<?php if(!$_POST['field']) $_POST['field'] = null; ?> 

將該值清空。

+0

設置我代碼如下所示: $形式[ 'myfield1'] =陣列( '#TYPE'=> '選擇', '#title'=>噸( '州') , '#options'=> content_allowed_values($領域[ 'myfield1']), '#default_value'=> $ myformname-> myfield1, '#REQUIRED'=> FALSE, ); if(!$ myformname-> myfield1)$ myformname-> myfield1 = NULL; 而且我的條件(以及我嘗試過的各種排列方式)根本不會影響輸出,所以我不確定在編碼中是否有問題,或者與ctools工具如何解釋或存儲形式變量。 – axxint

+0

我認爲你發佈的最後一行應該在第一行之上。將它的值複製到'#default_value'後,您目前將其取消。 – Kenaniah

相關問題