我有一个在PHP中创建单选按钮的函数:
// This function creates a radio button.
// The function takes two arguments: the value and the name.
// The function also makes the button "sticky".
function create_radio($value, $name = 'gallon_price')
{
// Start the element:
echo '<input type="radio" name="' .
$name .'" value="' . $value . '"';
// Check for stickiness:
if (isset($_POST[$name]) && ($_POST[$name] == $value))
{
echo ' checked="checked"';
}
// Complete the element:
echo " /> $value ";
} // End of create_radio() function.
然后我离开PHP表单创建一个html表单并使用代表三种不同汽油价格的值调用该函数三次。
<span class="input">
<?php
create_radio('3.00');
create_radio('3.50');
create_radio('4.00');
?>
</span>
我想知道如何更改此代码,以便可以获得相同的输出,只调用create_radio函数。
谢谢!
答案 0 :(得分:0)
您可以将$value
数组设为create_radio(数组(&#39; 3.00&#39;,&#39; 3.50&#39;,&#39; 4.00&#39;));只需在函数内循环:
function create_radio($value,$name = 'gallon_price'){
foreach($value as $v){
// Start the element:
$out. = '<input type="radio" name="'.$name.'" value="'.$v.'"';
// Check for stickiness:
if(isset($_POST[$name])&&($_POST[$name]==$v)){
$out .= ' checked="checked"';
}
// Complete the element:
$out .= " /> $v ";
}
return $out;
} // End of create_radio() function.
称之为:
echo create_radio(array('3.00','3.50','4.00'));
通常最好不要在函数内部回显。
答案 1 :(得分:0)
function create_radio($value, $name = 'gallon_price')
{
$output = "";
if (is_array($value)) {
while (count($value) > 0) {
$arr_value = array_pop($value);
$output .= create_radio($arr_value);
}
} else {
// Start the element:
$output .= '<input type="radio" name="' .
$name .'" value="' . $value . '"';
// Check for stickiness:
if (isset($_POST[$name]) && ($_POST[$name] == $value))
{
$output .= ' checked="checked"';
}
// Complete the element:
$output .= " /> $value ";
}
return $output;
}
快速递归将允许该函数适用于数组和非数组。注意:在html中,您需要回显对create_radio的调用,而不仅仅是调用它。