【问题标题】:PHP echo dynamic radio button with variable name带有变量名称的 PHP 回显动态单选按钮
【发布时间】:2012-10-29 08:55:34
【问题描述】:

所以我在 XHTML 中有这些单选按钮,我想将它们放入 PHP 函数中来生成,但我无法让它工作。

在 XHTML 中它看起来像这样并且正在工作;

<p><input type="radio" value="<? echo blabla; ?>" name="radioA" checked="checked" /></p>
<input type="hidden" value="<? echo $value; ?>" name="hiddenA[]" />

在 PHP 中,我需要将“radioA”和“hiddenA”分别设置为变量“radioB”/“hiddenB”、“radioC”/“hiddenC”等,这样我的代码才能正常工作。这是我到目前为止所拥有的,但它不起作用。第一个无线电名称是一个字符串,但第二个是数组。提前致谢。

function radio($Radio, $Array) {
    echo '<p><input type="radio" value="$value>" name="$Radio" />', $value, '</p>';
    echo '<input type="hidden" value="$value" name="$Array" />';
}

我想我想要做的是将变量的名称作为字符串返回。 $_POST['hiddenA'] ===> hiddenA[]

【问题讨论】:

  • 您必须使用双 qouted(") 字符串来扩展其中的变量。
  • $Value 是从哪里来的? “。”在 PHP 中附加字符串不是“,”。如果变量 $Array 是一个数组并且您回显它,它将回显一个数组。也许您打算从数组中访问一个值?作为一般规则,您应该使用小写字母来开始变量名:$array 而不是 $Array...
  • 问题是我需要将按钮的名称设置为数组的名称,而不是数组的值。因此,如果我在 XHTML name="hiddenA[]" 中手动键入它可以工作,但如果我使用 PHP 来回显它,它需要是 $_POST['hiddenA']。所以这就是我感到困惑的地方

标签: php variables dynamic radio


【解决方案1】:

基本的php语法:

$a = 'hello';
echo '$a'; // outputs the literal characters $ and a
echo "$a"; // outputs "hello"

【讨论】:

    【解决方案2】:

    这里有一些语法问题:

    function radio($Radio, $Array) {
        echo '<p><input type="radio" value="$Value>" name="$Radio" />', $Value, '</p>';
        echo '<input type="hidden" value="$Value" name="$Array" />';
    }
    
    1. 嵌入变量时必须使用""而不是'':

      echo "My name is {$name}.";

    2. 在 PHP 中,.字符用于附加字符串 not ,

      echo "My name is " . $name . " and I am cool";

    3. 如果您尝试回显一个数组,您将得到单词 Array 而不是数组本身。相反,您可以在数组中回显一个值:

      echo "$array[0]";

    4. 您正在尝试使用示例中未定义的变量:$Value。这会给你一个 VariableUndefined 异常。

    5. 在 PHP 中,在变量名的开头使用大写字母通常是不好的做法。所以$Array 应该是$array

    考虑到这些,您的代码应该如下所示:

    function radio($radio, $array) {
        $value1 = $array[0];
        $value2 = $array[1];
    
        echo "<p><input type=\"radio\" value=\"$value1>\" name=\"$radio\" />$value1</p>";
        echo "<input type=\"hidden\" value=\"$value2\" name=\"$value2\" />";
    }
    

    从你的例子的声音来看,你需要一个 for 循环。

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 2012-10-31
      相关资源
      最近更新 更多