2013-03-23 72 views
0

我正在試着製作一個複選框,它應該最終訂閱用戶到數據庫中的論壇。確定哪個動態生成的複選框被選中

我使用此代碼動態創建爲當前用戶訂購/退訂論壇的列表:

//$checkboxes = array(); 
echo' <form action="" method="post">'; 

while($unsubscrlist = mysql_fetch_assoc($sublist)) 
{ 
    //$checkboxes[] = $unsubscrlist['Name']; 
    echo '<input type="checkbox" checked="checked" name="subscrform[]" 
    value="' .$unsubscrlist['Name']. ' "/>' .$unsubscrlist['Name']. ' <br />'; 
} 

while($subscrlist = mysql_fetch_assoc($notsublist)) 
{ 
    // $checkboxes[] = $subscrlist['Name']; 
    echo '<input type="checkbox" name"subscrform[]" 
    value="' .$subscrlist['Name']. '"/>' .$subscrlist['Name']. '<br />'; 
} 

echo '<br /> 
<input type="submit" value="Submit" /> 
</form>'; 

然後,以確定哪些複選框被選中我使用此代碼:

if($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    if(isset($_POST['subscrform'])) 
{ 
//echo 'getshereeee'; 
    foreach($_POST['subscrform'] as $value) 
    { 
    //echo 'getshereeee'; 
      echo $value; 

    } 

} 

現在,第一個複選框 - 用戶已經訂閱 - 通過此代碼輸出爲值,而第二個複選框列表永遠不會以值的方式輸出。

我認爲這可能與兩次使用相同的名稱有關。因此,我將第一個列表更改爲unsubscrform,併爲兩者執行了檢查循環,但仍然只將第一個列表作爲輸出值。

我覺得我錯過了簡單的東西,但不能真正找出什麼。我非常感謝你的幫助!

+1

您是否嘗試過在你的PHP,例如開始調試'$ _POST'變量'回聲

'; print_r($_POST); echo '
';' – thaJeztah 2013-03-23 11:23:54

+0

陣列 ( [subscrform] =>數組 ( [0] => Nieuwforum [1] =>照片 ) ) 這是結果,(均 'nieuwforum'和'照片'來自複選框的第一個列表)顯然第二個列表根本不包括在帖子中..?:s – user1803370 2013-03-23 11:41:39

+0

並且是實際「檢查」的複選框的第二列表中的任何一個?未勾選的HTML複選框不會發送值 – thaJeztah 2013-03-23 12:37:13

回答

0

我剛剛找到了解決方案,我的問題!

通過改變

echo' <form action="" method="post">'; 

echo' <form name="subscrform" action="" method="post">'; 
+1

嗯,這並沒有什麼意義,表單不需要具有名稱屬性,除非您正在使用JavaScript進行操作。 – thaJeztah 2013-03-23 12:37:56