我正在尝试创建一个交互式下拉菜单,它使用mysqli查询来自动填充每个下拉菜单中的值。到目前为止,第一个下拉菜单echo是数据库中每个零件的品牌,所以它工作得很好。然而,第二个下拉列表显示,无论$selected值是真还是假,但当我选择一个品牌时,它也不会自动填充结果。
<?php
foreach($parts as $col) { ?>
<dl>
<dt><?php echo $col?></dt>
<dd>
<select id="search_status" name="state" data-placeholder="State">
<?php
$brand = $database->fetch_col($col);
$selected = false;
?>
<option value=""></option>
<?php foreach($brand as $b){ ?>
<option value="<?php $selected = true; ?>"><?php echo $b['Brand']; ?></option>
<?php }?>
</select>
<?php if($selected = true){
$item = $database->fetch_row($col, $b);
?>
<select>
<option></option>.
<?php foreach($item as $i) {?>
<option><?php echo $i['Model']; ?></option>
<?php }?>
</select>
<?php
} else {
echo "Please select Brand";
}
?>
<p><?php
echo var_dump($item);
?><p>
</dd>
</dl>
<?php }?>我相当确定它的$selected变量与表单的其余部分不对应。
发布于 2018-05-16 00:13:21
通过使用单个等号将$selected赋值为true -如果要将该值与true进行比较,则需要使用==或===。
http://php.net/manual/en/language.operators.comparison.php
发布于 2018-05-16 01:15:11
你可以用ajax做it.Here,我分享一些example.YOu可以从中找到你的解决方案…主页:
<html>
<head>
<script>
function showHint(str) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("POST", "ajax.php?q=" + str, true);
xmlhttp.send();
}
}
</script>
</head>
<body>
<form>
<input type="text" onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html> AJax页面ajax.php
<?php
echo "ss";
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="POST">
<a href="signup.php">Sign up</a>
<a href="signup.php">Sign up</a>
<a href="signup.php">Sign up</a>
<a href="signup.php">Sign up</a>
</form>
</body>
</html>希望能对你有所帮助。
https://stackoverflow.com/questions/50354785
复制相似问题