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

标签 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 插入查询无法正常工作。它在表中创建行并自动递增,但由于某些奇怪的原因,它不会将上面 Javascript 中的“var add”传递给下面的 Ci 脚本并在数据库中执行插入。有什么想法或想法吗?

<?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));
        }
    }
}
?>

最佳答案

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

不仅仅是一个字符串

关于php - jQuery JSON 没有正确地将数据传递给 Ci,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647634/

相关文章:

javascript - 将来自对 REST API 的重复请求的最终 json 写入文件

jquery - 如何通过名称调用jquery函数

javascript - 无法在 $_FILES 中获取文件但在 $_SERVER 中获取

javascript - 查找在 <select> 中选择了哪个 <Option>(没有 JQuery)

PHP 复杂的 MySQL 查询从不同的表计数

javascript - Cloudfront 和 Lambda@Edge : Remove response header

php - 微小的;从外部源加载 style_formats,例如 link_list

javascript - 使用 x 可编辑插件时出现 Uncaught ReferenceError

php - .htaccess, https 重定向到 login.php

php - 组合框输入选择当天的 MySQL 数据