jQuery JSON没有正确地将数据传递给Ci

时间:2011-12-27 17:47:10

标签: php javascript jquery mysql codeigniter

以下脚本可以告诉我:

<script type="text/javascript" language="javascript">
$(document).ready(function() {
    $('#add').bind('keypress', function(e) {
        if(e.keyCode == 13){
            var add = $("#add").val();
            $.ajax({
                type: "POST",
                dataType: "JSON",
                url: "<?php echo site_url("home/jsonAddData"); ?>",
                data: add,
                json: {title_posted: true},
                success: function(data){
                    if(data.title_posted == true) { // true means data was successfully posted.
                        $("#success").append("Success").fadeIn(400);
                    } else if(data.title_posted == false) { // false means data failed to post.
                        $("#success").append('Failure').fadeIn(400);
                    }
               }
          });
       }
    });
});
</script>

我遇到的代码问题是mysql insetion查询不起作用。它在表中创建行并自动递增但由于某些奇怪的原因,它不会将上面的Javascript中的'var add'传递给下面的Ci脚本并在db中执行插入。有什么想法或想法吗?

<?php
class home extends CI_Controller {
    function __construct() {
        parent::__construct();
    }
    function index() {
        $data = array();
        $data['lists'] = $this->displayList();
        $this->load->view('home', $data);
    }
    function displayList() {
        $str = '';
        $query = $this->db->query("SELECT * FROM data");
        foreach ($query->result() as $row) {
            $b = '<input name="completed" type="checkbox" />';
            $a = $row->title . "<br>";
            $str .= $b.$a;
        }
        return $str;
    }
    function jsonAddData() {
        if($this->input->is_ajax_request()) {
        $title = $this->input->post('title');
        $query = $this->db->query("INSERT INTO data (title) VALUES ('$title')");
        header('Content-type:application/json');
        if($query) echo json_encode(array('title_posted' => true));
        else echo json_encode(array('title_posted' => false));
        }
    }
}
?>

1 个答案:

答案 0 :(得分:4)

$.ajax({
...
data: {title: add}

不仅仅是一个字符串