Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于主类别显示子类别不适用于AJAX_Php_Jquery_Ajax - Fatal编程技术网

Php 基于主类别显示子类别不适用于AJAX

Php 基于主类别显示子类别不适用于AJAX,php,jquery,ajax,Php,Jquery,Ajax,我的数据库中有一个汽车“制造”和汽车“模型”表。当我回显汽车“使”它正常工作。但是,我希望汽车“模型”下拉列表根据选定的“制造”使用ajax显示,它在视图中不起作用 但是,我需要的所有信息都显示在控制台的“网络”选项卡上 问题出在哪里?以下是我的ajax代码: <script type="text/javascript"> var base_url = "<?php echo base_url();?>"; $(document).ready(functio

我的数据库中有一个汽车“制造”和汽车“模型”表。当我回显汽车“使”它正常工作。但是,我希望汽车“模型”下拉列表根据选定的“制造”使用ajax显示,它在视图中不起作用

但是,我需要的所有信息都显示在控制台的“网络”选项卡上

问题出在哪里?以下是我的ajax代码:

<script type="text/javascript">
var base_url = "<?php echo base_url();?>";

    $(document).ready(function() {
        $('select[name="make"]').on('change', function() {
            var makeid = $(this).val();
            if(makeid) {
                $.ajax({
                    url: base_url + 'myform/ajax/'+makeid,
                    type: "GET",
                    dataType: "json",
                    success:function(data) {
                        $('select[name="model"]').empty();
                        $.each(data, function(key, value) {
                            $('select[name="model"]').append('<option value="value.id">'+ 'value.title' +'</option>');
                        });
                    }
                });
            }else{
                $('select[name="model"]').empty();
            }
        });
    });
</script>

var base_url=“”;
$(文档).ready(函数(){
$('select[name=“make”]”)。在('change',function()上{
var makeid=$(this.val();
if(makeid){
$.ajax({
url:base_url+'myform/ajax/'+makeid,
键入:“获取”,
数据类型:“json”,
成功:功能(数据){
$('select[name=“model”]”)。空();
$。每个(数据、函数(键、值){
$('select[name=“model”]).append('+'value.title'+'');
});
}
});
}否则{
$('select[name=“model”]”)。空();
}
});
});
以下是视图:

<?php $attributes = array( 'name' => 'addcar', 'id' => 'addcar'); ?>
                  <?php echo form_open_multipart('cars/create', $attributes); ?>

                            <div class="form-group label-floating">
                                <label class="control-label">
                                    Марка
                                    <small>*</small>
                                </label>
                                <select id="make" name="make" class="selectpicker" data-style="select-with-transition" required="true">
                                    <option value=""></option>

                                    <?php foreach($makes as $make): ?>
                                    <option value="<?= $make['id']; ?>"><?= $make['maketitle']; ?></option>
                                <?php endforeach; ?>
                              </select>
                            </div>

                            <div class="form-group label-floating">
                                <label class="control-label">
                                    Модель
                                    <small>*</small>
                                </label>
                                <select id="model" name="model" class="selectpicker" data-style="select-with-transition" required="true">

                              </select>
                            </div>

</form>

Марка
*
Модель
*

您没有正确写入值,您需要将响应中对象的属性与您试图输出的内容相匹配:

$('select[name="model"]').append('<option value="value.id">'+ 'value.title' +'</option>');
$('select[name=“model”]”)。追加(''+'value.title'+'');
应该是

$('select[name="model"]').append('<option value="' + value.id + '">'+ value.modeltitle +'</option>');
$('select[name=“model”]”)。追加(''+value.modeltitle+'');

您将附加到select元素,但确实需要插入其中。只需在select中获取第一个(option)元素,然后附加到该元素,如下所示:

<select>
<option id="firstOption">First Option</option>
</select>


$("#firstOption").append(...)

我已经找到了解决我问题的办法。当我使用“CreativeTim”管理仪表板时,他们有自己的类。当我从select零件中删除class=“selectpicker”时,它工作了。实际上,我不知道它们之间有什么联系?

我在响应中看不到任何name属性,我只能看到一个title?除此之外,追加没有正确转义。像这样,只需添加字符串(value.id、value.name)。由于您的选择是空的,您是否验证您是否处于成功状态?抱歉,已编辑…仍然错误,它应该是:“”+value.title+''remove$(document.ready(function()),它会在页面被删除后使其超出范围loaded@AhmedSunny该方法将一个事件绑定到select字段,因此在ready函数中运行它没有问题。
+ 'value.title' +