2011-05-25 104 views
2

我有一个单选按钮阵列,我需要帮助。这里是代码:单选按钮阵列 - 需要帮助

  <input type="radio" name="radio" id="academic" value="1"<?php 
        if ($row_EventInfo['academic'] == '1') { 
        echo ' checked="checked"'; 
        } 
        else {$row_EventInfo['academic'] = '';} 
        ?>> 
     <label for="academic">Academic</label><br /> 

     <input type="radio" name="radio" id="personal" value="1"<?php 
        if ($row_EventInfo['personal'] == '1') { 
        echo ' checked="checked"'; 
        } 
        else {$row_EventInfo['personal'] = '';} 
        ?>> 
     <label for="personal">Personal</label><br /> 

     <input type="radio" name="radio" id="diversity" value="1"<?php 
        if ($row_EventInfo['diversity'] == '1') { 
        echo ' checked="checked"'; 
        } 
        else {$row_EventInfo['diversity'] = '';} 
        ?>> 
     <label for="diversity">Diversity</label><br /> 

我想要做的是这个。我在每个单选按钮的数据库表中有一列,因为我们必须分别输入它们的输入。但是,我希望他们一次只能选择其中一个按钮。我改变了所有的名字(“radio”),但是由于PHP MYSQL使用名字来知道在表格中发布信息的位置,所以它不知道在哪里发布信息。

有什么办法可以创建一个if语句来告诉它只允许一次选择一个按钮并保持数据库表的输入分离?

如果您需要澄清,请让我知道。谢谢!

回答

1

的值设置为列名,如

<input type="radio" name="radio" id="diversity" value="diversity" 

在php结束,只是这样做

$sql = "UPDATE table SET {$_POST['radio']} = 1"; 
+0

这工作就像一个魅力!谢谢! – Kevin 2011-05-26 15:21:55

+0

注意:这是有道理的例子,但对于实际的生产用途,在使用SQL查询之前清理表单输入可能是一个好主意。写入的查询可能容易受到注入攻击。 – 2012-11-04 23:48:23

0

这是在形式,对不对? 然后你得到POST中的数据。我不会将该值设置为1,将该值设置为您要选择的值,例如 然后在帖子中,获取值并使用它来设置数据库中的数据。

希望这会有所帮助!

BR,

TJ

+0

噢,我刚刚看到已经有这个答案;) 但它是相同的方法...;) – TerenceJackson 2011-05-25 20:32:43

0

如果你使用:

<input type="radio" name="radio" id="diversity" value="value1"> 
<input type="radio" name="radio" id="diversity" value="value2"> 
<input type="radio" name="radio" id="diversity" value="value3"> 
<input type="radio" name="radio" id="diversity" value="value4"> 

它会在$_POST['radio'];你选择什么都单选按钮可用。 eg.value3不如果您使用命名输入类型具有相同的名称

混淆自己:

<input type="radio" name="myradio" id="diversity" value="value1"> 

这将在$_POST['myradio'];

再加上你可能希望查看使用三元运算符

if ($row_EventInfo['diversity'] == '1') { 
    echo ' checked="checked"'; 
} 
else {$row_EventInfo['diversity'] = '';} 

变成

echo ($row_EventInfo['diversity'] == '1') ? ' checked="checked"':''; 
+0

或更短:> – 2011-05-25 20:54:53

+0

那不适合我,因为没有得到短标签:( – 2011-05-25 21:11:55