如何在动态组合框中的cakephp 3中使用ajax?

时间:2018-10-02 15:04:53

标签: javascript cakephp-3.x

我有一个错误:无法加载资源:服务器以403(禁止)状态返回403错误,我没有加载查询将我带到组合框中的值。

在控制器中输入代码。

public function getFunciones() {
        $aux = $this->getRequest()->getSession()->read('user.idSyA');
        $bd = substr($aux, 0, 5);
        //$bd = 'A0001';
        $conexion = mysqli_connect('secret', 'secret', 'secret');
        mysqli_select_db($conexion, $bd);
        $Sql = "select $bd.funciones.Funcion "
                . "from $bd.funciones "
                . "where $bd.funciones.Entidad = '$value' "
                . "order by $bd.funciones.Funcion";
        $result = mysqli_query($conexion, $Sql);
        $funciones = '<option value="0">Elija una opcion</option>';
        while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
            $funciones .= "<option value='$row[Funcion]'>$row[Funcion]</option>";
        }
        $this->set('funciones', $funciones);
    }

public function getlistaMod() {
        $aux = $this->getRequest()->getSession()->read('user.idSyA');
        $bd = substr($aux, 0, 5);
        //$bd = 'A0001';
        $conexion = mysqli_connect('secret', 'secret', 'secret');
        mysqli_select_db($conexion, $bd);
        $Sql = "select $bd.funciones.Entidad from $bd.funciones group by $bd.funciones.Entidad";
        $result = mysqli_query($conexion, $Sql);
        $listas = '<option value="0">Elija una opcion</option>';
        while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
            $listas .= "<option value='$row[Entidad]'>$row[Entidad]</option>";
        }

        $this->set('listas', $listas);
       funciones.Entidad
    }

js文件中的代码

$(document).ready(function () {
    $.ajax({
        type: 'POST',
        //url: 'getlistaMod'
        url: '<?php echo $this->Html->url(array('controller' => 'configuraciones', 'action' => 'getlistaMod')); ?>'
        //dataType: 'json',
        //contentType: 'json'
    })
            .done(function (listaMod) {
                //console.log(response.lista);
                $('#listaMod').html(listaMod)
            })
            .fail(function () {
                alert('Hubo un error al cargar los Modulos')
            })

    $('#listaMod').on('change', function () {
        var id = $('#listaMod').val()
        $.ajax({
            type: 'POST',
            //url: 'getFunciones',
            url: '<?php echo $this->Html->url(array('controller' => 'configuraciones', 'action' => 'getFunciones')); ?>',
            //dataType: 'json',
            //contentType: 'json',
            data: {'id': id}
        })
                .done(function (listaMod) {
                    //console.log(response.funciones);
                    $('#listaFun').html(listaMod)
                })
                .fail(function () {
                    alert('Hubo un error al cargar las Funciones')
                })
    })

    $('#enviar').on('click', function () {
        var resultado = 'El modulo : ' + $('#listaMod').val() +
                '<br>La Funcion: ' + $('#listaFun').val()
        $('#resultado').html(resultado)
    })

})

View .ctp中的代码

<h1 align="center"> Registrar Preguntas</h1>
<div class="container" >
    <?= $this->Form->create($reg) ?>
        <p>Modulo</p>
        <select id="listaModulo" name="listaModulo" class="form-control">
        </select>
    </div>
    <div class="form-group col-sm-8">
        <p>Modulo</p>
        <select id="listaFun" name="listaFun" class="form-control">
        </select>
    </div>

    <div class="form-group col-sm-8" align="center">
        <?php
        //echo $this->Form->button('Agregar', ['class' => 'btn btn-primary']); 
        ?>
        <p><br><button id="enviar" type="submit" class="btn btn-default">Enviar</button>
        </p>
    </div>
    <br>
    <div>
        <br>
        <p><b>Resultado de la Consulta: </b></p><p id="resultado"></p> 
    </div>
    <?= $this->Form->end() ?>
</div>
<!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js">
</script>-->
<?= $this->Html->script('cargarModulos') ?>

我收到该错误,但我没有加载选项,我是Cakephp的新手,请等待您的帮助。

0 个答案:

没有答案