问:我正在为博客创建编辑器。每个帖子都会被分类。
当用户从第一个下拉菜单中单击帖子标题并按Ga(荷兰语中的go)时,页面将重新加载,并将第二个类别下拉框选择为与之关联的类别,并在同一下拉框中显示所有其他类别。
在第二个保管箱中拥有所有类别,将允许用户更改文章的类别。我可以同时填充两个保管箱,但不能使选择部分正常工作。
我认为(isset($ _ POST ['Ga']))缺少了一些东西,但我不知道。
有什么建议么?
<?php
if (isset($_POST['Ga'])) {
$db = new mysqli("dbhost", "username", "password", "dbname"); //set your database handler
$query = "SELECT c.catid , a.titel , c.cat FROM artikelen a JOIN Categorie c ON c.catid = a.catid where c.catid = a.catid";
$result = $db->query($query);
while ($row = $result->fetch_assoc()) {
if ($row ['a.catid'] = ['c.catid']) {
$selected = ($row['catid'] == $result);
$resultofcat = echo "<option value=\"".$row["catid"]."\" ".($selected ? " selected=\"selected\"":"").">".$row["cat"]."</option>";
}
}
}
?>
<?php
$link = mysqli_connect("dbhost", "username", "password", "dbname");
$db = new mysqli("dbhost", "username", "password", "dbname");//set your database handler
$query = "SELECT c.catid , a.titel , c.cat FROM artikelen a JOIN Categorie c ON c.catid = a.catid";
$result = $db->query($query);
echo "<form action='test.php' method='post' enctype='multipart/form-data'>";
?>
<select id='subcatsSelect'>
<?php
// $query = "SELECT catid, cat FROM Categorie";
$result = $db->query($query);
while ($row = $result->fetch_assoc()) {
// $subcats[$row['catid']][] = array("catid" => $row['catid'], "val" => $row['cat']);
echo "<option value='catid'> {$row['titel']}</option>";
}
?>
</select>
<select id='categoriesSelect'>
<?php
$result = $db->query($query);
while ($row = $result->fetch_assoc()) {
$resultofcat = ("<option value='{$row ['catid']}'> {$row['cat']}</option>");
echo $resultofcar;
}
?>
</select>
<input id='Ga' type='submit' value='Ga'name='Ga' />
答:您的示例中似乎有很多问题,我不确定同一代码在您的环境中能否正常工作。
无论如何,我不会指出所有这些错误,而只是试图使您的保管箱选择工作。因此,为了使选择部分起作用,您必须进行以下更改:
1:将名称属性添加到您的保管箱(选择框)
<select id ='subcatsSelect'name =“ subcatsSelect”>
<select id ='categoriesSelect'name =“ categoriesSelect “>
2:在“ if(isset($ set _ $ [POST ['Ga']))”条件中,更改“ if”条件,而不是回显OPTION值,只需存储它的ID:
if($ row ['catid'] == $ _POST ['subcatsSelect']){
$ selectedId = $ row ['catid'];
}
3:用以下内容替换第二个选择框的“ while”条件:
while($ row = $ result-> fetch_assoc()){
if($ selectedId == $ row ['catid']){
$ resultofcat =“ <选项值='{$ row ['catid']}''selected = 'selected'> {$ row ['cat']} </ option>“;
} else {
$ resultofcat =“ <选项值='{$ row ['catid']}'>> $$ row ['cat']} </ option>”;
}
回声$ resultofcat;
}
同时尝试以更好的方式改善数据库连接。我希望这将有所帮助。