2013-08-26 37 views
0

我有一個HTML格式的表單和PHP中的代碼。該表格包含了很多不同的東西<input>。我只想要在瀏覽器中輸出一些文本,只要全部爲這些字段不爲空。if-check所有數組值

例如,對於兩個字段叫做nameage,我會做到以下幾點:

if($_POST['name'] and $_POST['age']) { ... } 

但在這裏我有很多兩個以上的領域。我該怎麼辦?

+0

你有多少個字段? – 2013-08-26 13:43:06

+3

你應該閱讀'for'循環。 –

+0

[**這可能有助於**](http://stackoverflow.com/a/3190482/1415724) –

回答

6

你可以嘗試這樣的事情

$allSet = true; 
foreach($_POST as $key => $value){ 
    if(empty($value)){ 
     $allSet = false; 
     break; 
    } 
} 
+0

我喜歡這個方法,但是並沒有給出留下空白的特定錯誤信息。你也應該把它移到一個函數中,並在確認它是否爲空之前修剪該值。 –

+0

當然,有很多事情可以做。目標是指向他正確的方向:) – Dragony

1

簡單的功能。您可以附加必填字段array('name', 'age', 'phone')

function checkPost() 
{ 
    if (!$_POST) return false; 

    $fields = array('name', 'age'); 
    foreach ($fields as $field) 
    { 
     if(!$_POST[$field]) 
      return false; 
    } 
    return true; 
} 

if(checkPost()) { ... } 
+0

該結構似乎太複雜,它看起來,OPS技能水平 –

+0

沒有複雜。只需要將新字段推送到數組。 – Bora

2

你也可以試試這個,如果需要發送的所有輸入:

if (count(array_filter($_POST)) != count($_POST)) { 
    // at least one input is empty 
} 

array_filter()

該函數返回同一陣列,而不值即null,false,0或空字符串。所以如果過濾數組中的條目少於原始數據中的條目,這意味着至少有一個輸入未被填充。

編輯:works

+0

有人可以說我爲什麼被拒絕投票嗎? – Brewal

+0

我喜歡這個解決方案,它非常漂亮,但對於提出問題的人來說,這可能不是一個合適的級別。 – Dragony

+0

@Dragony是的,我喜歡簡單和簡短。也許這不是在選民的「正確的水平」!不過,它對任何人都能理解:) – Brewal