【问题标题】:set $_POST value when radio button is selected选择单选按钮时设置 $_POST 值
【发布时间】:2013-11-13 12:55:14
【问题描述】:

我有一个带有一些单选按钮和表单的页面。当我选择一个单选按钮时,我需要将其 id 设置为 $_POST['id'] 变量,因此当我提交表单时,我可以检查选择了哪个单选按钮并采取相应措施。我知道我不能直接这样做,所以尝试使用

onclick="document.getElementById("id").value="'.$row['id'].'"

在单选按钮上,但它不起作用。

$d="select * from {$_c['dbprefix']}card where active='1' order by s_sent desc, s_order asc limit 0,{$_c['filtr']['step']}";
$r=mysql_query($d);
if (mysql_num_rows($r)>0) {

echo '<div class="cards">';
echo '<form method="POST">';
$i=0;
while ($row=mysql_fetch_array($r)):

echo '<div class="item">';
echo '<input id="'.$row['id'].'" type="radio" name="id" class="detail">'.$_l['detailtitle'].'</input>';
echo '<label for="'.$row['id'].'" class="itemin" style="height:'.$_c['card']['sy'].'px"><img src="pub/cards/'.$row['id'].'s.jpg" /></lable>';
echo '</div>';

$i++;
if ($i%3==0) echo '<div class="cl-left"></div>';

endwhile;

echo '<div class="cl-left"></div>';
echo '</div>';
    }
?>



<div class="dvasl">

<div class="sl1">

<fieldset>
<legend>Saatja andmed</legend>
<table class="info">
<colgroup><col width="12%"><col></colgroup>
<tr>
<th>Nimi:</th>
<td><input type="text" name="item[from_name]" value="<?php echo $ap['set']['from_name']; ?>" class="inpedit"></td>
</tr>
<tr>
<th>Email:</th>
<td><input type="text" name="item[from_email]" value="<?php echo $ap['set']['from_email']; ?>" class="inpedit"></td>
</tr>
</table>
</fieldset>

<fieldset>
<legend>Saaja andmed</legend>
<table class="info">
<colgroup><col width="12%"><col></colgroup>
<tr>
<th>Nimi:</th>
<td><input type="text" name="item[to_name]" value="<?php echo $ap['set']['to_name']; ?>" class="inpedit"></td>
</tr>
<tr>
<th>Email:</th>
<td><input type="text" name="item[to_email]" value="<?php echo $ap['set']['to_email']; ?>" class="inpedit"></td>
</tr>
</table>
</fieldset>

</div>
<div class="sl2">

<fieldset>
<legend>E-kaardi tekst</legend>
<table class="info">
<tr>
<td><textarea name="item[text]" cols="20" rows="8" class="inpedit2"></textarea></td>
</tr>
</table>
</fieldset>

</div>

<div class="cl-left"></div>
</div>

<div class="buttons">
<div class="t2"><input type="submit" value="Vaata kaardi eelvaadet" name="button[nahled]" class="unbutt1"></div>
</div>

<input type="hidden" name="id" value="<?php echo $ap['card']['id']; ?>">
<input type="hidden" name="action" value="itemadd">
</form>

<?php
$k=floor(($i-1)/3);
if ($k<2) echo '<div class="spacer-'.(2-$k).'"></div>';

?>

【问题讨论】:

  • 可以使用按钮的名称属性。
  • 你是什么意思?
  • 当你问你要检查哪个单选按钮被选中时。因为你正在使用
    所以我告诉你在单选按钮中给出一个名称属性,这样在后端你会知道选择了单选按钮的那个名称属性的值。我不知道你为什么要使用 javascript。

标签: php html


【解决方案1】:

如果您可以在表单中使用隐藏字段并使用所选单选按钮的 id 更新其值,并且当表单发布时,您可以在更改您可以使用 javascript 也可以使用 id 属性访问隐藏字段,并且可以通过名称属性在帖子中获取它

添加一个名为

的隐藏字段
<input type="hidden" id="checked_radio" name="checked_radio" value="" />

然后在单击按钮时使用 javascript 更改值

<input type="radio" id="foo" name="foo" onclick="document.getElementById('checked_radio').value=this.value;" />

【讨论】:

  • 不错的答案。这就是我在@martinv 的评论中所说的
  • 很高兴帮助您马丁v您可以通过 $_POST['checked_radio'] 获取帖子中的值 如果您想一次传递多个事物或 ID,您也可以在隐藏中传递逗号分隔的字符串感谢Rishabh的支持
【解决方案2】:

所选单选按钮的值被发布,name 用于将单选按钮组合在一起。 (只能选择一个带有指定name 的单选按钮。)与其尝试发布id 属性的值,不如添加value 属性并设置它。您可以将其设置为与id 属性相同的值,或者完全删除id 属性。

【讨论】:

    【解决方案3】:

    当我选择一个单选按钮时,我需要将其 id 设置为 $_POST['id'] 变量

    您正在更改值,而不是 id,以更改 id 使用:

    onclick="document.getElementById("id").id="<?php echo $row['id'] ?>";
    

    无论如何,我认为您应该为此使用name 属性。

    【讨论】:

      【解决方案4】:

      改变这一行

      echo '<input id="'.$row['id'].'" type="radio" name="id" class="detail">'.$_l['detailtitle'].'</input>';
      

      echo '<input id="'.$row['id'].'" type="radio" value="'.$row['id'].'" name="id" class="detail">'.$_l['detailtitle'].'</input>';
      

      当您的表单提交时,您将获得选定的 id 为$_POST['id']

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2015-03-22
        相关资源
        最近更新 更多