【问题标题】:My radio button values are only showing the first letter我的单选按钮值只显示第一个字母
【发布时间】:2011-05-11 14:55:54
【问题描述】:

我的单选按钮值仅显示第一个字母 (see picture here)。我设置了一个带有单选按钮的表单,可以在“图像幻灯片”和“视频幻灯片”之间进行选择,但只显示每个值的第一个字母。只有“I”和“V”。为什么会这样显示?我该如何解决这个问题?

这是我的代码,其中突出显示了单选按钮特定的行:http://pastebin.com/sDGTMe6v

【问题讨论】:

  • 查看输出的 HTML 源代码,首先确保 PHP 是有问题的。因此,请查找单选按钮名称中仅打印的单个字符。
  • 我没有看到任何明显的东西。确保你没有做类似回显 $option['name'][0] 这样的事情,在这种情况下,字符串会被视为数组,你只会看到第一个字符。
  • 我通常会因为阅读和帮助调试代码而获得报酬 :) 如果您删除“代码噪音”,这将有很大帮助

标签: php radio-button string-concatenation


【解决方案1】:

我认为

case 'radio':
foreach ($field['options'] as $option) {
    echo '<input type="radio" name="', $field['id'], '" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' />', $option['name'];
}
break;

你应该显示 $option,而不是 $option['name'] :

case 'radio':
foreach ($field['options'] as $option) {
    echo '<input type="radio" name="', $field['id'], '" value="', $option, '"', $meta == $option ? ' checked="checked"' : '', ' />', $option;
}
break;

【讨论】:

    【解决方案2】:

    我不确定对象 $option 是如何制作的。您可以通过在第 119 行之后(在 foreach 函数内部)添加这一行来调试它,看看它应该如何工作:

    echo '<pre>'.print_r($option).'</pre>';
    

    您可能无法使用 $option['value'] 或者它可能无法正确解析。一旦你看到 $option 的结构,你就可以进一步调试了。

    【讨论】:

      【解决方案3】:

      它发生是因为您尝试输出

      $option['name']
      

      您的 $option 不是数组..

      只是输出

      $option
      

      这对于 value 属性也应该是相同的。所以 $option['value'] 也应该是 $option

      【讨论】:

        猜你喜欢
        • 2012-07-15
        • 2013-02-25
        • 1970-01-01
        • 2013-12-26
        • 2017-12-19
        • 2014-03-01
        • 2016-12-12
        • 2022-06-19
        • 1970-01-01
        相关资源
        最近更新 更多