在下拉列表中显示预定义值

时间:2015-04-29 07:37:53

标签: php mysql sql drop-down-menu mysqli

我有一个供应商列表,我希望对其进行编辑。点击编辑按钮,我被重定向到另一个页面editvendor.php,其中我有我想要编辑的所有参数,但在这个页面我还有2个相互依赖的下拉列表,通过它我可以在scpecific类别下分类每个供应商和子类别。下拉列表的代码是

<script>
$(document).ready(function(){
    $('#cat').change(function(){
        var catid = $('#cat').val();

        if(catid != 0)
        {
            $.ajax({
                type:'post',
                url:'fetchsubcat2.php',
                data:{id:catid},
                cache:false,
                success: function(returndata){
                    $('#subcat').html(returndata);
                }
            });
        }
    })
})
</script>

<fieldset>
    <label>Category</label>
    <select name="catid" id="cat" >
        <option value=""> Please select a category </option>
        <?php
                $sql = "SELECT * FROM category";
                $result = mysqli_query($con, $sql);

                if (mysqli_num_rows($result) > 0) {
                    while($row = mysqli_fetch_assoc($result)) 
                        {
                            $catname=$row["category"];
                            $catid=$row["id"];
        ?>
        <option value="<? echo $catid;?>"><? echo $catname;?></option>
                        <?}
                }?>
    </select>
</fieldset> 

<fieldset>
    <label>Sub Category</label>
    <select name="subcatid" id="subcat" >
        <option></option>
    </select>
</fieldset> 

fetchsubcat2.php的代码

<?php
    require 'connection.php';
    $catid =  $_REQUEST['id']; 

        $sql = "SELECT * FROM subcategory where catid='".$catid."'";
        $result = mysqli_query($con, $sql);

        if (mysqli_num_rows($result) > 0) 
            {
                ?><option value="">Select a subcategory</option><?
                while($row = mysqli_fetch_assoc($result)) 
                    {
                        $subcatname=$row["subcatname"];
                        $subcatid=$row["id"];
?>

<option value="<? echo $subcatid;?>"><? echo $subcatname;?></option>
                  <?}
            }
        else
            {?>
                <option value="">No sub category </option>
            <?}?>

现在我想要的是,如果供应商已经在一个类别和子类别下,那么代替“请选择一个类别”和“选择一个子类别”,应该显示现有的类别和子类别。 如下所示,代替这个

enter image description here

我想要

enter image description here

之后,如果我想更改类别/子类别,我可以通过单击下拉列表来完成。

表格视图

供应商表

id vendorname catid catname subcatid subcatname 1 ABC 1 C1 3 S3

1 个答案:

答案 0 :(得分:1)

对于option标记(与供应商关联的标记),添加selected参数以在选择列表中预先选择它。

为此您需要知道供应商实际属于哪个类别,我找不到任何引用该代码的代码,所以只是一个例子和一些猜测: 如果id与vendor-catid匹配,您将获得供应商实际所属类别的ID以及您检查的所有类别的while循环:

<?php
while($row = mysqli_fetch_assoc($result)) {
    $catname=$row["category"];
    $catid=$row["id"];
    ?>
    <option value="<? echo $catid;?>" <?php echo ( $catid === $vendorcatid ? 'selected' : ''); ?>><? echo $catname;?></option>
<?}