我将表单数据从home.php
提取到results.php
并使用$_GET['xxxxx']
预先填充其他表单的字段。我可以填充input
个字段,但是如果将option
字段和$sale_type
与所选字段进行比较,如果相等?
home.php
<form action="results.php" method="GET">
<input id="address" name="address" type="text" class="form-control1"/>
<select type="text" name="sale_type" placeholder="Sale Type">
<option value="Sale">For Sale</option>
<option value="Rent">To Rent</option>
</select>
<input name="submit" type="SUBMIT" value="Next" class="form-control1">
</form>
results.php
选项字段已经填充,以确保表单在没有home.php
结果的情况下使用。我需要将$sale_type
值与name="sale_type
选项进行比较,如果相等则将该选项值更改为选中。
$address = $_GET['address'];
$sale_type = $_GET['sale_type']; ?>
<form method="POST">
<input id="address" name="address" type="text" value='<?php echo $address; ?>'>
<select type="text" name="sale_type" placeholder="Sale Type">
<option value="Sale">For Sale</option>
<option value="Rent">To Rent</option>
</select>
<button type="submit" id="filter">Search</button>
<input type="hidden" name="action" value="ek_search">
</form>
我想要的结果
$address = $_GET['address'];
$sale_type = $_GET['sale_type']; ?> //If value is Sale
<form method="POST">
<input id="address" name="address" type="text" value='<?php echo $address; ?>'>
<select type="text" name="sale_type" placeholder="Sale Type">
<option value="Sale" selected>For Sale</option> //Change to selected if equal
<option value="Rent">To Rent</option>
</select>
<button type="submit" id="filter">Search</button>
<input type="hidden" name="action" value="ek_search">
</form>
答案 0 :(得分:0)
您可以检查,然后在条件满足时标记为已选择。其中一个例子是:
<option value="Sale" <?php if(condition) echo "selected" ?> >For Sale</option>
答案 1 :(得分:0)
如果您要完全做这件事,我的建议是构建一个PHP函数。否则,你最终会得到一堆混合的HTML / PHP来检查条件。
这使您可以在需要时快速设置和显示下拉列表。
像这样的东西会做你想要的并且可以重复使用:
// Function to generate the HTML for a select
function dropdown_array( $name, $value, $array, $placeholder = '' ) {
$temp_input = '<select name="' . $name . '"';
$temp_input .= ( $placeholder ) ? ' placeholder="' . $placeholder . '"' : '';
$temp_input .= '>' . PHP_EOL;
if ( is_array( $array ) ) {
foreach ( $array as $val => $text ) {
$temp_input .= '<option value="' . $val . '"';
if ( $value === $val ) {
$temp_input .= ' selected';
}
$temp_input .= '>' . $text . '</option>' . PHP_EOL;
}
}
$temp_input .= '</select>' . PHP_EOL;
return $temp_input;
}
然后,在您的情况下,使用情况如下:
$array = array( 'Sale' => 'For Sale', 'Rent' => 'To Rent' );
echo dropdown_array( 'sale_type', $sale_type, $array, 'Sale Type' );
答案 2 :(得分:0)
您可以将变量与value中的值进行比较,如下所示:
<option value="Sale" <?= ($sale_type === 'Sale') ? 'selected' : ''; ?>>For Sale</option>
另一个选项,如果你愿意的话,是设置一个sale_types数组。您可以遍历选项并在那里查看,而不是检查每个单独的选项值。像这样:
$sale_types = [
'Sale' => 'For Sale',
'Rent' => 'To Rent',
'SomeOtherType' => 'Something Else'
];
然后在select元素中:
<? foreach ($sale_types as $sale_value => $sale_option): ?>
<option value="<?= $sale_option; ?>" <?= ($sale_type === $sale_option) ? 'selected' : ''; ?>><?= $sale_value; ?></option>
<? endforeach; ?>