2014-09-23 79 views
-1

您好想建立一個創建調查的程序。我無法弄清楚如何爲未解答的問題分配價值。感謝您的幫助。

$dizi = array(); 
foreach ($_POST as $key => $value){ 
    if(empty($_POST)){ 
     $_POST="bos"; 
    } 
    $dizi[$key] = "'".$value."'"; 
} 
+1

什麼是你想怎麼辦? – 2014-09-23 23:25:36

+0

我已經在這裏回答類似的問題:http://stackoverflow.com/questions/16637523/how-to-make-sure-at-least-one-radio-button-is-selected-in-each-group- php/16638708#16638708 – shudder 2014-09-24 02:34:54

+0

當用戶在數據庫創建表時,我不知道有多少個字段在那裏。所以我使用一個SQL查詢,如INSERT INTO testcevaplar VALUES('',$ ekle)[$ ekle = implode(',',$ dizi)]。如果任何調查參與者跳過任何問題,則sql查詢的值不會與表中的字段匹配。所以我想爲跳過的問題分配一個值。我不能檢查每個$ _POST,因爲我不知道有多少個問題。 – Artun 2014-09-24 09:16:59

回答

0

如果我理解正確的,你,你正在嘗試做的是這樣的:

foreach ($_POST as $key => $value) { 
    if(empty($value)) 
     $_POST[$key] = 'This is an unanswered question!'; 
} 

但這不能因爲一個事實,即空值就不從形式投遞工作。

0

你怎麼知道如果沒有從表單中發佈「未回答」的問題? 您必須從問題列表(不能由用戶僞造並在服務器端定義)開始,並檢查每個問題的答案是否存在於$ _POST中。如果沒有 - 將您想要的內容分配給跳過的答案。

1

您的代碼是沒有意義的,試試這個:

$dizi = array(); 
foreach($_POST as $key => $value) { 
    if (empty($value)) { 
     $value = 'your value'; 
    } 
    $dizi[$key] = $value; 
} 
1

$ _ POST是associative array 這樣你就可以訪問它:

$bla = $_POST['bla']; 

你所試圖做的是設置整個數組到一個不起作用的字符串。 您應該在將其保存到$ dizi數組時將其設置爲新值。

$dizi = array(); 
foreach($_POST as $key => $value) { 
    $newValue = $value; 
    if (empty($value)) { 
     $newValue = 'bos'; 
    } 
    $dizi[$key] = $newValue; 
    unset($newValue); 
} 

但是這隻會檢查答案字符串是否爲空。所以這隻適用於所有問題都是強制性的。

0

試試這個:

if(isset($_POST) && (!empty($_POST))){ 
    foreach ($_POST as $key => $value) { 
    if(empty($value)){ 
     $_POST="bos"; 
    } else{ 
     //put your code 
    } 

    } 
}