当前位置: 首页 > 知识库问答 >
问题:

在将数据插入图书表时选择类别和子类别

吕钧
2023-03-14

我在书店网站上有三张桌子。类别、子类别和书籍我想在将数据插入图书表时选择类别和相关子类别,但子类别无法从类别中获取id,并且在列表中未显示任何子类别我的代码如下:

<th scope="col">Select Category</th>
<th scope="col"><select name="cat">
<?php
include("config.php");
$catsql = "SELECT * FROM categories;";
$catres = mysql_query($catsql);
while($catrow= mysql_fetch_assoc($catres)) {
echo "<option value='" . $catrow['id']
. "'>" . $catrow['cat'] . "</option>";
}
?>

</select></th>
</tr>
<tr>
<th scope="col">Select Subcategory
</th>
<th scope="col"><select name="subcat">
<?php
$cat=$catrow['id'];
$subsql="select * from subcat where catid=$cat;";
$subrs=mysql_query($subsql);
while($subrow=mysql_fetch_array($subrs)){
echo "<option value='" . $subrow['id']
. "'>" . $subrow['subcat'] . "</option>";

}
?>
</select>
</th>

共有2个答案

祁远
2023-03-14

我已经使用java脚本完成了这项工作:

    <?php
    $db = new mysqli('localhost','root','','sha');
    $query = "SELECT * FROM categories;";
    $result = $db->query($query);

  while($row = $result->fetch_assoc()){
    $categories[] = array("id" => $row['id'], "val" => $row['cat']);
  }

  $query = "SELECT id, catid, subcat FROM subcat";
  $result = $db->query($query);

  while($row = $result->fetch_assoc()){
    $subcats[$row['catid']][] = array("id" => $row['id'], "val" => $row['subcat']);
  }

  $jsonCats = json_encode($categories);
  $jsonSubCats = json_encode($subcats);


?>

<!docytpe html>
<html>

  <head>
    <script type='text/javascript'>
      <?php
        echo "var categories = $jsonCats; \n";
        echo "var subcats = $jsonSubCats; \n";
      ?>
      function loadCategories(){
        var select = document.getElementById("categoriesSelect");
        select.onchange = updateSubCats;
        for(var i = 0; i < categories.length; i++){
          select.options[i] = new Option(categories[i].val,categories[i].id);          
        }
      }
      function updateSubCats(){
        var catSelect = this;
        var catid = this.value;
        var subcatSelect = document.getElementById("subcatsSelect");
        subcatSelect.options.length = 0; //delete all options if any present
        for(var i = 0; i < subcats[catid].length; i++){
          subcatSelect.options[i] = new Option(subcats[catid][i].val,subcats[catid][i].id);
        }
      }
    </script>

  </head>

  <body onload='loadCategories()'>
  <form action="storebooks.php" method="post"><table><tr><th scope="col">Select Category</th>
    <th scope="col"><select id='categoriesSelect' <select name="cid">
    </select></th>
  </tr>
<tr>
    <th scope="col">Select Subcategory
    </th>
    <th scope="col">
    <select id='subcatsSelect' name="subcatid">
    </select></th>
  </tr>
  <tr>
    <th scope="col"><p>Title</p></th>
    <th scope="col"><input name="title" type="text" /></th>
  </tr>
  <tr>
    <th scope="col">Author</td>
    <th scope="col"><input type="text" name="author" id="author" /></td>
  </tr>
  <tr>
    <td>description</td>
    <td><textarea name="bookdesc" cols="30" rows="15"></textarea></td>
  </tr>
  <tr>
    <th scope="col"><p>keywords</p></th>
    <th scope="col"><input name="keywords" type="text" /></th>
  </tr>
   <tr>
    <th scope="col"><p>Image</p></th>
    <th scope="col"><input name="image" type="text" /></th>
  </tr>
  <tr>
    <th scope="col"><p>Order</p></th>
    <th scope="col"><input name="order" type="text" /></th>
  </tr>
    <tr>
    <td></td>
    <td><input name="submit" type="submit" value="submit" id="submit" /></td>
  </tr>
</table>
</form>

</body>
</html>
蒋华美
2023-03-14

用户选择任何类别来填充子类别下拉列表时,应该使用Ajax调用。

 类似资料:
  • 问题内容: 我想在选择 列表(下拉列表)中显示类别,子类别和子子类别,就像WordPress在其管理面板中显示的方式一样。 首先看一下我的数据库表(tb_categories)- 数据库表 我想要以下HTML格式的输出- 输出 两项“无”和“未分类”在代码中进行了硬编码。我 想知道如何 使用选择列表选项以层次结构顺序显示类别及其子类别。 我正在尝试使用自我连接的以下sql查询。这 是- And t

  • 问题内容: 我知道有几个答案类似于我所问的几个问题。但是他们的方法看起来并不令人信服。 我的问题是我如何为可以拥有书籍的类别和也可以拥有书籍的子类别构建数据库? 我已经设计了一个数据库,但是不相信这种方法。因此,如果有经验的家伙给我一些建议,改进或完全不同的方法,我将不胜感激。 这就是我的表格的样子(请记住,这不是实际的代码) 本书的桌子采用相同的设计。 问题答案: 无论是顶级类别还是子类别,都没

  • 这是一个产品的表格结构 这是类别的表结构 我在为包括嵌套类别在内的每个类别选择产品计数时遇到困难。例如,类别有1个产品,类别有1个产品,类别有1个产品,并且由于类别和是类别的各自直接/间接祖先,类别有3个产品。所以我需要一个查询或只是一种方法来获得这样的东西: 是否可以只使用SQL,或者我需要添加一些PHP?

  • 我是编程新手,目前正在尝试将主类别子类别显示为树。 已创建包含类别的菜单。现在,当我单击主类别名称时,我希望加载分配给该主类别的所有子类别中的所有产品。问题是我不明白如何构造我的查询。 在我的表类别中,我存储了主猫和子猫。当我向一些主类别添加子类别时,我将主类别ID存储在父类别ID列下。 示例 产品表有列 因此,当我点击maincatID=1时,它应该会显示id为1和2的产品,因为它们被分配给

  • 你好,我已经为joomla安装了jBusiness目录组件,我在tmpl/default.php文件中有一个名为mod_jbusinessdirectory的模块(这是一个商业列表搜索模块),我有选择代码:(见下文) 从这段代码中,我得到如下类别和子类别: > 主要类别1 子类别1子类别2子类别3 主要类别2 此处截图:类别和子类别截图 在助手中。php我有从数据库中获取类别和子类别的函数 最后,

  • 类别表的结构: id 标题 家长id 项目表的结构: id 标题 is_active(0) category_id 表结构 表通过一对多关系与category_id字段相关联。1类可以有很多项。 类别表中的两级层次结构。这定义了主要类别和子类别。类别是那些父项id=NULL的记录。和子类别,这些记录中的父项_id=到某个id。 一个项目可以属于主类别(其中parent_id=null)和子类别(子