在选择的HTML下拉菜单中选择一个选项。
问题描述:
感谢您阅读我的问题。在选择的HTML下拉菜单中选择一个选项。
我有一个使用PHP搜索卡数据库的网站。现在我在每个页面上都有head/searchbox部分的代码,但是我想用函数代替。该功能本身正在工作。问题出在下拉框中。我现在已经设置好了,这样当用户选择并选择,然后搜索时,选择就会在下一页中被选中。
我确定我的语法有问题。
下面是工作代码,这是used on the live site right now.
<select name="Type" onchange="this.submit()">
<option value="1" >[All Card Types] </option>
<option value="Hero" <?php if($_GET['Type'] == "Hero") echo "selected='selected'"; ?>> Hero </option>
<option value="Ally" <?php if($_GET['Type'] == "Ally") echo "selected='selected'"; ?>> Ally </option>
</select>
这是从功能,这是不工作相关的代码,和is on the test site一个例子(忽略错误):
function searchBox(){
//Cell 1
echo '
<select name="Type" onchange="this.submit()">
<option value="1" >[All Card Types] </option>
<option value="Hero" <?php if($_GET["Type"] == "Hero") { echo "selected=selected" ; }?>> Hero </option>
<option value="Event" <?php if($_GET["Type"] == "Event") { echo "selected=selected"; }?>> Event </option>
</select>
';
}
正如您在测试页面中看到的那样,下拉菜单在实时页面上的功能不同。
感谢您的帮助!
答
您不能将<?php
标签嵌入到类似的字符串中。您必须将其与ternary operators连接起来。
function searchBox(){
//Cell 1
echo '
<select name="Type" onchange="this.submit()">
<option value="1" >[All Card Types] </option>
<option value="Hero"' . ($_GET['Type'] == 'Hero' ? ' selected=""' : '') . '> Hero </option>
<option value="Event"' . ($_GET['Type'] == 'Event' ? ' selected=""' : '') . '> Event </option>
</select>
';
}
但对于可维护性的缘故,你可以做更多的东西是这样的:
function searchBox() {
$types = array('Hero', 'Event');
$output = '<select name="Type" onchange="this.submit()">';
$output .= ' <option value="1" >[All Card Types] </option>';
foreach ($types as $type) {
$output .= '<option value="' . $type . '"' . ($_GET['Type'] == $type ? ' selected=""' : '') . '> ' . $type . ' </option>';
}
$output .= '</select>';
echo $output;
}
答
有点混乱,但应该工作:
function searchBox(){
//Cell 1
echo '
<select name="Type" onchange="this.submit()">
<option value="1" >[All Card Types] </option>
<option value="Hero"';
if($_GET["Type"]=="Hero"){
echo "selected=selected";
}
echo '>Hero</option><option value="Event"';
if($_GET["Type"]=="Event"){
echo "selected=selected";
}
echo '>Event</option></select>';
}
答
概率lem是你输出PHP作为函数中的文本文本的一部分。您需要重写该函数,以便PHP逻辑不在echo语句中。在这种情况下,它可能是最容易跳/出PHP的处理是这样的:
<?php function searchBox() { ?>
<select name="Type" onchange="this.submit()">
<option value="1" >[All Card Types] </option>
<option value="Hero" <?php if($_GET["Type"] == "Hero") { echo "selected=selected" ; }?>> Hero </option>
<option value="Event" <?php if($_GET["Type"] == "Event") { echo "selected=selected"; }?>> Event </option>
</select>
<?php } ?>
你的函数嵌入回声 – 2011-08-17 00:15:29