将Jquery JSON从Codeigniter控制器传递到视图

时间:2011-01-15 20:26:53

标签: jquery ajax codeigniter

我一直在努力使其工作,但无法使用JSON将插入的数据从控制器传递到CI中的视图。表单中的输入值已成功插入到数据库中,但无法使其显示在视图中。

这是我的观看文件 ajax_view.php

<script type="text/javascript" src="<?php echo base_url(); ?>js/jquery-1.4.2.min.js"></script>
$(document).ready(function(){

$("#submit").click(function(){

    var inp = $('#inp').val();


    $.post("ajax/ajax_input", { 'send' : inp },
       function(data){
            alert(data.input_text);

       }, "json");

});

});
</script>
   </head>
<body>
<form id="form1" method="post" action="">
 <label for="inp">Text</label>
 <input type="text" name="inp" id="inp" />
 <label for="submit"></label>
 <input type="submit" name="submit" id="submit" value="Submit" />

     

这是 ajax.php 控制器的 ajax_input 方法:

<?php
// Initializing controller .....
// .............................


 //ajax method
function ajax_input(){
    $var_1 = trim($this->input->post('send'));
    $array = array('input_text' => $var_1);

    echo json_encode($array);
    $this->db->insert('ajax',$array);
}

尝试使用Firebug进行调试,它让我 data.input_text 为空。

我做错了什么?

编辑: 我在Win上使用XAMPP,那么json配置是否可行?

3 个答案:

答案 0 :(得分:2)

代码本身应该有效,这里有一些提示:

  1. 我不知道这是不是打字错误,但你的JS没有正确打开(缺少<script type="text/javascript">
  2. 使用submit()事件,而不是在提交输入上发生click()事件:

    <script type="text/javascript">
        $(document).ready(function(){
            $("#form1").submit(function(){
                var inp = $('#inp').val();
                $.post("ajax/ajax_input/", { 'send' : inp },
                function(data){
                    console.log(data.input_text);
                }, 'json');
                return false;
            });
        });
    </script>
    
  3. 切换Controller中的两行并将insert()返回给变量以防万一:

    if($this->db->insert('ajax',$array))
        echo json_encode($array);
    else
        //echo json_encode(array("input_text"=>"Input was not inserted correctly!"));
        echo json_encode(array("input_text"=>$this->db->last_query())); // for testing purposes ONLY!! don't use in live website!
    

答案 1 :(得分:0)

你的ajax input.php页面中有一个拼写错误。 更改: $ array = array(' input_text '=&gt; $ var_1); 到

$array = array('input_text' => $var_1);

答案 2 :(得分:0)

$array = array('input_tekst' => $var_1); //why tekst?

将文字更改为文字。