Codeigniter:如何在不刷新的情况下将数组从控制器传递到视图

时间:2014-06-18 04:22:27

标签: javascript php ajax json codeigniter

基本上我在视图中有一个表单,启用了一个输入,并禁用了多个输入(仅显示从唯一输入派生的信息)。

现在,我需要将此输入发送到控制器以进行查询,并将包含字段信息的数组发送回视图但不刷新网站(因为我无法在此页面中取消我的进度)

也许解决方法是使用javascript向控制器发送输入字段,并在函数中返回值数组以刷新表单,但是如何?

编辑:抱歉我的英文不好。

2 个答案:

答案 0 :(得分:0)

var input = $('#input').val();
$.ajax({
        type:"POST",
        url: <?php echo base_url().'controllername/action'?>
        data: {input : input},
        success: function(data){
        // this data should be contain an arra
        $('#where_to_insert_array').html();
         }


 });
  • 在控制器操作和操作中

    功能动作() { $ data = $ this-&gt; input-&gt; post(&#39; input&#39;);

  • 从$ data

  • 获取数据库中的数据
  • 制作数组,然后回显它

    echo array(); }

答案 1 :(得分:0)

最后,我理解如何动态地将数组从控制器传递给视图,这是代码:

视图javascript:

function getClient(){
if($('#cedula_cliente').val()){
    $.ajax({
        type : "post",
        url: "<?php echo base_url().'index.php/clientes/getClienteFactura'?>",
        cache: false,
        data : {cedula :  $('#cedula_cliente').val()},
        success : function(json){
            var obj=jQuery.parseJSON(json);
            if(obj[0]){
                $('#nombre_cliente').val(obj[0].nombre);
                $('#apellido1_cliente').val(obj[0].apellido1);
                $('#apellido2_cliente').val(obj[0].apellido2);
                $('#dir_cliente').val(obj[0].dir);
            }else{
                alert("Usuario no encontrado");
            }

        },
    });
}else{
    alert("Debe ingresar una cédula de usuario");
}

}

我使用obj [0],因为“cedula”是主键,它永远不会返回超过1行。

这是控制器功能:

public function getClienteFactura(){
    $cedula = $this->input->post('cedula');

    $query = $this->Client_model->getClientByCedula($cedula);
    echo json_encode($query); 
}   

感谢您的回答,也许我应该在谷歌上看起来更好,解决问题的关键是Json。