gpt4 book ai didi

php - 表单提交后下拉选择未保持选中状态

转载 作者:行者123 更新时间:2023-11-27 23:18:37 24 4
gpt4 key购买 nike

我正在尝试清理一个搜索 mysql 网络表单,以便所有函数(还有很多)驻留在外部文件中,用 require(fileName.php); 调用在表单页面中,希望使主要的 webform.php 更易于跟踪和管理。

我在 searchDb.php 表单页面中有很多下拉菜单供用户从中选择搜索条件,它们的脚本都类似于:

    <p> <!-- Technician: -->
<label for"Technician:">Technician:</label>
<select name="searchTech" id="searchTech">
<option value="0">-- Select Technician --</option>
<?php
techDDM($searchTech, isset($_POST['submitted']))
?>
</select>

当表单首次加载时,下拉菜单会按预期填充,在本例中是通过函数调用 techDDM() 填充的。位于:require('dropDownMenu.php');

function techDDM(&$searchTech, $sbmtd) {
// initialize and populate techArr
$techArr = array('First Last1', 'First Last2', 'First Last3', 'First Last4', 'First Last5', 'First Last6', 'First Last7', 'First Last8', 'First Last9');

echo '<br />(' . __LINE__ . ') $searchTech : ' . $searchTech . '<br />'; // output for debug
echo '<br />(' . __LINE__ . ') $sbmtd : ' . $sbmtd . '<br />'; // output for debug
foreach ($techArr as $t) {
echo "<option value='$t'";
if ($sbmtd == 1 && $searchTech == '$t') {
echo " selected";
}
echo ">$t</option>";
}
}

但在提交表单后,如果确定用户输入的文本字段之一包含错误,并且如果用户另外从 Select Technician 中选择了一个名称下拉菜单,例如,作为额外的搜索条件,然后我打算让用户的下拉选择保持选中状态,同时提示他们修复键入的错误。不幸的是,selected用户选择的选项值的属性未包含在 <option 中标记,但满足包含所选属性的条件,如上面粘贴的 HTML 和 PHP 示例呈现的技术人员部分的页面源代码所示:

<p> <!-- Technician: -->
<label for"Technician:">Technician:</label>
<select name="searchTech" id="searchTech">
<option value="0">-- Select Technician --</option>
<br />(8) $searchTech : First Last1<br /><br />(9) $sbmtd : 1<br /><option value='First Last1'>First Last1</option><option value='First Last2'>First Last2</option><option value='First Last3'>First Last3</option><option value='First Last4'>First Last4</option><option value='First Last5'>First Last5</option><option value='First Last6'>First Last6</option><option value='First Last7'>First Last7</option><option value='First Last8'>First Last8</option><option value='First Last9'>First Last9</option> </select>
<span id="spanSpace"></span>

来源显示技术选择:First Last1确实被选中了,页面也提交了:$sbmtd == 1 ,然后应该附加 selected属性为 `First Last1,但这并没有发生。

任何人都可以看出我做错了什么或遗漏了什么吗?

最佳答案

改变你的条件:

if ($sbmtd == 1 && $searchTech == $t) {
echo " selected";
}

关于php - 表单提交后下拉选择未保持选中状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42109838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com