使用jQuery提交无工作,从控制器codeigniter 3给出响应

sbtkgmzw  于 2023-01-10  发布在  jQuery
关注(0)|答案(1)|浏览(176)

我有一些问题与jQuery的理解,但在这种情况下,我认为我做的每件事都是正确的,但没有得到结果,如果你能帮助会很好...谢谢这里的代码和截图
注意:如果我以常规的方式添加表单操作url地址,它做得很好,但我想用Ajax来做...
在视图中,请注意,我将数据从表单发送到控制台以验证数据,它确实收到了数据...因此表单字段不为空...

<form id="ubicate">
    <input type="hidden"  id="idusuario" name="idusuario" value="12345612">
    <input type="hidden"  id="tipo" name="tipo" value="<?php echo $this->session->userdata( 'nivel' );?>">
    <input type="hidden" name="maplinkform" id="maplinkform" value='No ubicacion disponible'>
    <input type="hidden" id="fechacreado" name="fechacreado" value="<?php echo date('Y-m-d H:i:s'); ?>">
    <input id="creadopor" name="creadopor" type="hidden" value="<?php echo $this->session->userdata( 'username' );?>">
<button type="submit">Enviar</button>
</form>

<script>
  $(document).ready(function() {
    $('#ubicate').submit(function(event) {
      event.preventDefault(); // Evitar que se envíe el formulario de forma 

            var idusuario = $('#idusuario').val();
            var maplinkform = $('#maplinkform').val();
            var tipo = $('#tipo').val();        
            var creadopor = $('#creadopor').val();
            var fechacreado = $('#fechacreado').val();
            console.log( $('#ubicate').serialize() );

        $.ajax({
            url: '<?php echo base_url('paginaprincipal/ubicacionvend') ?>',
        type: 'POST',
        data: {
            idusuario:idusuario,
            maplinkform:maplinkform,
            tipo:tipo,          
            creadopor:creadopor,
            fechacreado:fechacreado
        },
              success: function(response) {
                if (response.status == 'success') {
                    // Mostrar un mensaje de confirmación utilizando SweetAlert2
                    Swal.fire({
                        title: '¡Éxito!',
                        text: response.message,
                        icon: 'success'
                    });
                } else {
                    // Mostrar un mensaje de error utilizando SweetAlert2
                    Swal.fire({
                        title: 'Error',
                        text: response.message,
                        icon: 'error'
                    });
                }
            }
        });
    }); 
});     
</script>

在控制器中,我放置了一个出口,以测试Ajax调用是否进入控制器,但出口从未被命中。

public
    function ubicacionvend() {
                $this->load->model( 'model_generico', 'generico' );
        exit('it is inside'); 
        $laubicacion = array(

            'idusuario' => $this->input->post( 'idusuario', "TRUE" ),

            'tiponegocio' => $this->input->post( 'tipo', "TRUE" ),

            'ubicacion' => $this->input->post( 'maplinkform', "TRUE" ),

            'fechacreado' => $this->input->post( 'fechacreado' ),

            'creadopor' => $this->input->post( 'creadopor', "TRUE" )

        );

        $respuesta = $this->generico->guardarUbicacion( $laubicacion );
        if($respuesta){
                // Devuelve un mensaje de éxito
                $response = array(
                  'status' => 'success',
                  'message' => 'Los datos se han insertado correctamente'
                );
              }
              else
              {
                // Devuelve un mensaje de error
                $response = array(
                  'status' => 'error',
                  'message' => 'Ha ocurrido un error al insertar los datos'
                );
              }
              
              echo json_encode($response);
    }

在模型中

public function guardarUbicacion($field){
        $this->db->insert('ubicaciones', $field);
        if($this->db->affected_rows() > 0){
            return true;
        }else{
            return false;
        }
    }

截图结果,在那里你可以注意到消息没有出现,这意味着我没有收到任何回应。

我用一种普通的方法向表单添加动作,它做得很好,但我想用Ajax来做

s4chpxco

s4chpxco1#

已经解决了问题,a确实更改了数据收集并添加了dataType:json,最终解决了问题,现在运行良好。

$(document).ready(function() {
    $('#ubicate').submit(function(event) {
      event.preventDefault(); // Evitar que se envíe el formulario de forma 

      console.log( $('#ubicate').serialize() );

        $.ajax({
        url: '<?php echo base_url('paginaprincipal/ubicacionvend') ?>',
        type: "POST",
        data: $('#ubicate').serialize(),
        dataType: 'json',
              success: function(response) {
                if (response.status == 'success') {
                    // Mostrar un mensaje de confirmación utilizando SweetAlert2
                    Swal.fire({
                        title: '¡Éxito!',
                        text: response.message,
                        icon: 'success'
                    });
                } else {
                    // Mostrar un mensaje de error utilizando SweetAlert2
                    Swal.fire({
                        title: 'Error',
                        text: response.message,
                        icon: 'error'
                    });
                }
            }
        });
    }); 
});

相关问题