【问题标题】:How to populate a subcategory based on category如何根据类别填充子类别
【发布时间】:2020-07-08 14:19:39
【问题描述】:

我正在处理一个表单,其中子类别是根据类别决定的,但类别和子类别都是从数据库中获取的。 早些时候,当数据库不涉及它时,我使用了 javascript populate 方法来处理相同的数据是虚拟的 所以我试图将用于从数据库中获取子类别的代码包含在其中。 这是我到目前为止的代码


      <label>Job Category*</label>
      <?php
         $dataset =  $objCmn->getCat(); \\for getting category from database
            ?>
      <select id="jb-category" class="form-control" name="jb_category" onchange="populate(this.id, 'sub-category')" required>
         <option>Choose Category</option>
         <?php
            foreach ($dataset as $key => $cat) {
                    echo '<option value="' . $cat['maincategory_name'] . '">' . $cat['maincategory_name'] . '</option>';
               
            }
            ?>
      </select>

      <label>Sub Category*</label>
      <select id="sub-category" class="form-control" name="sub_category" required>
      </select>

根据类别填充子类别的函数

function populate(s1, s2)
{
var s1 = document.getElementById(s1);
var s2 = document.getElementById(s2);
s2.innerHTML = "";
var categoryValue = s1.value;
alert(categoryValue);
document.writeln(categoryValue);
<?php  $category_name  =  "<script>document.writeln(categoryValue)</script>"; 
           
             $categoryName = $objCmn->getSubCategory($category_name);
             foreach($categoryName as $key=>$row)
             {
                 ?> 
var optionArray = ["<?php $row['cat_name'] ?>|<?php $row['cat_name'] ?>",]; 
<?php
   }
    ?> 
for (var option in optionArray)
{
var pair = optionArray[option].split("|");
var newOption = document.createElement("option");
newOption.value = pair[0];
newOption.innerHTML = pair[1];
s2.options.add(newOption);
}
}
</script>

有没有其他方法可以将 php 代码嵌入到 JS 中。 以前我曾尝试在 php 标记之前关闭脚本标记并在 php 关闭标记之后打开相同的标记,但它也不起作用。

【问题讨论】:

    标签: javascript php html


    【解决方案1】:

    一种更优雅的方法是获取已选择类别的标识符,通过 ajax 将其发送到您的 php 脚本,获取相应的子类别,将它们返回给 javascript,然后填充您的子类别选择。

    如果您不熟悉 AJAXthis 可能会有所帮助。

    你也可以看看一些jquery方法here;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      相关资源
      最近更新 更多