codeigniter AJAX 查询未在我的div中显示mysql结果

jmo0nnb3  于 2022-12-07  发布在  Mysql
关注(0)|答案(2)|浏览(127)

我有一个使用 AJAX 调用显示的列表,每个元素都有一个执行查询的onclick,模型接收到正确的查询,但当它刷新列表时,它仍然为空,就好像来自控制器的信息没有到达一样,因为我对foreach和mark数组[0]进行了var_dump,当查询确实得到结果时,div仍然为空
这是我代码:
第一个
没有错误消息,只是div没有再次刷新。

5kgi1eie

5kgi1eie1#

我将重写HTML部分以纠正先前标识的标记错误,并在呈现列表后绑定事件处理程序。

<?php 
    foreach( $direc as $direccion ) { 
?>
                                     
<li class="list-group-item">
    <div class="row align-items-center no-gutters">
        <div class="col mr-2">
            <!--
            
                Change the `option` to another element such as `i` as used here.
                Change the ID to a `data-id` so that duplicate IDs are not observered in the DOM.
                Remove inline event handler and assign external event listener later.
                Assign `data-set` attributes so that the event listener can obtain required information when the `i` element is clicked.
                
            -->
            <i data-id='hijo' data-zona='<?= $direccion['nombre_zona']; ?>' data-value='<?= $direccion['first_name'];?> <?= $direccion['last_name'];?>' >
                <h4 class="mb-0">
                    <strong><?=$direccion['first_name']; ?>&nbsp;<?=$direccion['last_name']; ?>, Zona--><?=$direccion['nombre_zona']; ?></strong>
                </h4>
            </i>
        </div>
        <div class="col-auto">

        </div>
    </div>
</li>

<?php
    }//end foreach loop
?>

和外部事件监听器:

<script>
    document.querySelectorAll('i[ data-id="hijo" ]').forEach( i=>i.addEventListener('click',function(e){
        
        e.preventDefault();
        e.stopPropagation();
        
        <?php
            printf(
                'const url="%s/Administracion/paneladminreddos";',
                base_url()
            );
        ?>
        
        // Use `this` to access (dataset) properties of the `i` element.
        // Construct the payload for the POST request.
        let data={
            'padre':this.dataset.value,
            'zona':this.dataset.zona
        };
        
        $.ajax({
            data:data,
            url:url,
            type:'post',
            beforeSend:()=>$('#content').html('Procesando, espere por favor...'),
            success:(r)=>$('#content').html(r),
            error:(e)=>console.log(e)
        });
        
    }));
</script>

一个例子
第一次

pw136qt2

pw136qt22#

Foreach函数将是循环,重复标记。所以如果你设置id,我认为你可以通过数字顺序或ID来设置。

<option  id="<?= $direccion['id'] ?>" value="<?= $direccion['first_name'] ?>&nbsp;<?= $direccion['last_name'] ?>"

相关问题