我在这里和其他地方读过很多关于记住单选按钮的帖子。我还阅读了很多关于初始化一个单选按钮的帖子。我没有读过很多东西就是将两者结合起来。如果可能的话,我想在输入语句中这样做。
记忆的例子(即,在重新显示页面时保留突出显示的单选按钮):
<input type="radio" name="sex" value="Male" <?php echo ($sex=='Male')?'checked':'' ? >size="17">Male
<input type="radio" name="sex" value="Female" <?php echo ($sex=='Female')?'checked':'' ?> size="17">Female
或
<input type="radio" name="veg" value="cabbage" <?php if(!isset($veg)){print " checked=\"checked\"";} if(isset($veg) && $veg == "cabbage"){print " checked=\"checked\"";} ?>> cabbage
<input type="radio" name="veg" value="onion" <?php if(isset($veg) && $veg == "onion"){print " checked=\"checked\"";} ?>> onion
或
<input name="searchtype" type="radio" value="artist"
<? if ($searchtype == 'artist') echo 'checked'; ?>>
Title:
<input name="searchtype" type="radio" value="title"
<? if ($searchtype == 'title') echo 'checked'; ?>>
Year:
<input name="searchtype" type="radio" value="year"
<? if ($searchtype == 'year') echo 'checked'; ?>>
第一个似乎最简单,但我不能让它工作。我不断得到一些错误,大概是语法。这是我的部分代码:
<input type="radio" name="typ" value="exact" <?php if ($_GET["typ"]=="exact") echo "checked=\"checked\""; ?>Exact
<input type="radio" name="typ" value="starts" <?php if ($_GET["typ"]=="starts") echo "checked=\"checked\""; ?>Starts with
<input type="radio" name="typ" value="sounds" <?php if ($_GET["typ"]=="sounds") echo "checked=\"checked\""; ?>Soundex</td></tr>
<input type="submit" value="Find" /></td></tr>
第二个问题是以某种方式将默认值合并到上面。
我的尝试涉及使用上面代码的第三种格式并尝试最初测试null。像这样的东西。再次它不起作用:
精确 以。。开始 探测法
以下代码有效,但是很详细:
$exact_status = 'unchecked';
$starts_status = 'unchecked';
$sounds_status = 'unchecked';
if (isset($_POST['typ'])) {
$selected_radio = $_POST['typ'];
if ($selected_radio == 'exact')
{$exact_status = 'checked';}
else if ($selected_radio == 'starts')
{$starts_status = 'checked';}
else if ($selected_radio == 'sounds')
{$sounds_status = 'checked';}
}
else {
$exact_status = 'checked';}
echo
'<p>Enter Surname and optionally Given Name(s):
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<table cellpadding="4" cellspacing="0">
<tr><td valign="top">Surname:</td><td><input type="text" size=40 name="surname" value="'.$surname.'" /></td><td>Required</td></tr>
<tr><td valign="top">Given Name(s):</td><td><input type="text" size=40 name="firstname" value="'.$firstname.'" /></td><td>Optional</td></tr>
<tr><td valign="top">Search Type:</td><td>
<input type="radio" name="typ" value="exact"'.$exact_status.'>Exact
<input type="radio" name="typ" value="starts"'.$starts_status.'>Starts with
<input type="radio" name="typ" value="sounds"'.$sounds_status.'>Soundex
</td></tr>
<tr><td></td><td><input type="submit" value="Find" /></td></tr>
</table>
</form>
<p>';
根据以下评论,我尝试了这个。它几乎可以工作。第一个输入框工作。接下来的两个只输出单词“checked”而不是输入语句???
if (!isset($_POST['typ']))
{$radio1 = '<input type="radio" name="typ" value="exact" checked>Exact';}
else
{$radio1 = '<input type="radio" name="typ" value="exact"'.($_GET['typ'] =="exact")?"checked":''.'>Exact';}
$radio2 = '<input type="radio" name="typ" value="starts"'.($_GET['typ'] =="starts")?"checked":''.'>Starts with';
$radio3 = '<input type="radio" name="typ" value="sounds"'.($_GET['typ'] =="sounds")?"checked":''.'>Soundex';
echo
'<p>Enter Surname and optionally Given Name(s):
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<table cellpadding="4" cellspacing="0">
<tr><td valign="top">Surname:</td><td><input type="text" size=40 name="surname" value="'.$surname.'" /></td><td>Required</td></tr>
<tr><td valign="top">Given Name(s):</td><td><input type="text" size=40 name="firstname" value="'.$firstname.'" /></td><td>Optional</td></tr>
<tr><td valign="top">Search Type:</td><td>',$radio1,$radio2,$radio3,
'</td></tr>
<tr><td></td><td><input type="submit" value="Find" /></td></tr>
</table>
</form>
<p>';
换句话说,在第一个单选按钮之后,它说:Exactcheckedchecked。接下来的两个按钮丢失了。
答案 0 :(得分:0)
<input type="radio" name="typ" value="exact" <?php echo ($_GET['typ'] =="exact")?"checked":'' ?>>Exact
<input type="radio" name="typ" value="exact" <?php echo ($_GET['typ'] =="starts")?"checked":'' ?>>Starts with
<input type="radio" name="typ" value="exact" <?php echo ($_GET['typ'] =="sounds")?"checked":'' ?>>Soundex
<input type="submit" value="Find" /></td></tr>
上面的东西应该可以解决问题。它被称为速记,如果并且 - 我会说 - 仅在类似上面的情况下有用。
请详细了解:http://davidwalsh.name/php-ternary-examples其中有很多关于如何使用它的示例。
Lycka直到!