TEL:400-8793-956
当前位置:程序、服务器

如何基于PHP中的第一个保管箱获取第二个保管箱的选定ID,并进行刷新?

提问者: 近期获赞: 浏览人数: 发布时间:2021-02-03 15:06:52

 问:我正在为博客创建编辑器。每个帖子都会被分类。

 
当用户从第一个下拉菜单中单击帖子标题并按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;
    }
 
同时尝试以更好的方式改善数据库连接。我希望这将有所帮助。
上一篇: 如何将WPF应用程序转换为Exe文件
下一篇: 在我的虚拟设备上,relativeLayout的屏幕(主屏幕)未拉伸为全屏