【问题标题】:Radio button checked issue单选按钮检查问题
【发布时间】:2014-06-26 05:59:32
【问题描述】:

据我所知,我的问题是关于浏览器的问题。 我问是否有任何解决方案可以告诉浏览器在单选按钮之间移动 check="checked"。我认为会有一个快速的解决方案,但这种情况只是令人困惑。我现在改变了我的代码。我现在使用选择列表元素。

我有一个表格,我用php得到了实际的设置,但问题是这样的:

当单选按钮 1 出现 checked="checked" 时,如果这是实际的,那么当我在帖子中更改为其他选项时,我得到 checked="checked" 的值,我想知道是否有解决方案或需要 Javascript 的东西比如 onclick"this.checked otherone uncheck" ?

if($type==1) { $like = 'checked="checked"'; } else { $ref='checked="checked"'; }

<form method="post" action="process.php" id="fbform" name="fbform">
<div class="radio">
<p>Like button: </p>
<input type="radio" name="tipi" <?=$like?> value="1" />
</div>
<div class="radio1">
<p>Link:</p> 
<input type="radio" name="tipi" <?=$ref?> value="2" />
</div>
</form>

Process.php 文件代码

<?php
$mysql->update('settings'," tipi='".$_POST['tipi]."' ");
?>

【问题讨论】:

  • 你的问题不够清楚。显示一些代码,这可能会更好地解释您的问题。我怀疑这与具有相同名称的单选按钮有关,但如果不查看您的代码,我无法确定。
  • 请向我们展示您的 html 代码。
  • 当然单选按钮必须具有相同的名称,否则会发布 2 个 POST 变量。
  • 显示你的代码你让我们感到困惑。
  • 没有什么可迷惑的人。这里我只是添加了一些代码。

标签: php html radio-button


【解决方案1】:

checked 是一个标记标签 - 它不关心,只要单词 'checked' 存在。

【讨论】:

  • 伙计,我想告诉用户实际选中的选项,因此浏览器将选中的选项设为选中。浏览器确实关心选中的标签。
【解决方案2】:

我会这样做:

<div class="radio">
  <p>Like button: </p>
  <input type="radio" name="tipi" id="tipi1" value="1"<?php if ($type == 1) echo ' checked="checked"'; ?> />
</div>
<div class="radio1">
  <p>Link:</p> 
  <input type="radio" name="tipi" id="tipi2" value="2"<?php if ($type != 1) echo ' checked="checked"'; ?> />
</div>

我更改了 id,因为您有两个具有相同 id 的元素,即使这些元素属于同一组,这也永远不会起作用。

【讨论】:

    【解决方案3】:

    你可以做得更好。此外,ID 仅用于 CSS 或 JS,而且必须是 UNIQUE。

    <div class="radio">
    <p>Like button: </p>
    
    <input type="radio" name="tipi" id="tipi" <?php echo ($type == '1')?'checked="checked"' : '';?> value="1" />
    
    </div>
    
    <div class="radio1">
    
    <p>Link:</p> 
    <input type="radio" name="tipi" id="tipi2" <?php echo ($type=='2')?'checked="checked"' : '';?> value="2" />
    
    </div>
    

    然后你在 php 中访问它们

    $tipi = $_POST['tipi']; //either 1 or 2
    

    【讨论】:

    • 你可能误解了我,我用
      发布这些值,我需要具有不同值的相同 $_POST['tipi'] ,发布部分的值是选中的值.
    • 根据$type,你可以从任何你想要的地方得到那个值
    • @Ghostology:“post 部分的值是选中的值” - 根据定义,这就是它的样子。 HTTP 不会仅仅因为你想要它而改变。但是,如果你能更好地描述你的问题,人们也许可以给你一些实际的提示。
    • 我刚问过浏览器中是否有触发器来更改选中的单选框:S。这就是全部。
    • @Ghostology 你问的什么都不清楚,否则有人会给出正确的答案
    【解决方案4】:

    您需要对代码进行非常简单的更改。请参见以下代码:

    首先你需要在页面/代码的最顶部定义变量:

    $like = ""; 
    $ref = "";
    

    据我所知,现在您的代码将运行良好..

    谢谢。

    【讨论】:

    • $like, $ref 为 NULL,因为每次更改后页面都会重新加载,并且当它们通过 if 条件时,只有其中一个获得值。
    • 实际上并非如此。有时它存储了一些垃圾值。所以你需要定义变量 NULL 作为良好的编码习惯......谢谢。
    • @Chandresh 你在说什么垃圾值?
    【解决方案5】:

    Ghostology:不确定您的问题……但我能做的就是向您解释单选按钮的工作原理。

    假设表单中有两个单选按钮:

    <input type="radio" name="radioTest" value="1" checked />
    <input type="radio" name="radioTest" value="0"  />
    

    这里的checked指定了在页面加载过程中将被选中(或打开)的按钮。

    现在假设我们检查第二个按钮并提交此表单,现在我们根据参数“radioTest”得到值 0,因为值 0 的单选按钮被选中。

    现在,当页面再次加载某些单选按钮值时。您会希望检查正确的单选按钮。 对于这种情况,我想您可以使用 if/else 条件,例如:

    【讨论】:

      猜你喜欢
      • 2015-05-21
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 2019-05-29
      相关资源
      最近更新 更多