2013-03-23 64 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

相关问题