【问题标题】:Reading a json object in codeigniter在codeigniter中读取一个json对象
【发布时间】:2013-05-28 17:57:57
【问题描述】:

我尝试使用控制器函数读取 ajax 发送的 JSON 对象,但无法读取 php 中的 JSON。

这是 jquery 脚本。我试过设置

 $(document).on('ready', function(){
        $('#contact-form').on('submit', function () {

            var form = $(this),
                url = "<?php echo site_url('home_controller/processContactForm'); ?>",
                method = form.attr('method'),
                data = {},

            form.find('[name]').each(function(index,name){
                var input = $(this),
                    name = input.attr('name'),
                    value = input.val();

                    data[name] = value; // Looping through each input inside the form and adding the values to the data Object
                )};

                $.ajax({
                    url: url,
                    type: method,
                    data: data,
                    success:function(response){
                        console.log(data);
                    }
                });

            return false;
        });
    });

这是控制器功能:

public function processContactForm()
{
    $data = json_decode($_POST['data']);
    echo '<pre>';
    print_r($data);
    echo '</pre>';
    var_dump($data);
}

Var 转储正在打印 null

【问题讨论】:

  • 你试过var_dump($_POST['data']); 看看你是否得到了正确的值来传递给json_decode()

标签: ajax json forms codeigniter


【解决方案1】:
public function processContactForm()
{
    if(isset($_POST['data'] && $_POST['data'] != NULL) {
        $data = json_decode($_POST['data']);
        echo '<pre>';
        print_r($data);
        echo '</pre>';
        var_dump($data);
    }
}

【讨论】:

  • 它什么也不输出,因为它给出了 null。
  • 问题是由于php.ini文件配置错误,post_max_size设置为8MB而不是8M。 post_max_size = 8MB(之前) post_max_size = 8M(之后)
【解决方案2】:

将您的 ajax 函数更改为:

$.ajax({
    url: url,
    type: method,
    data: { data: data }, // create an object with a property of "data"
    success:function(response){
        console.log(data);
    }
});

ajax 设置对象中的data 属性会将数据数组/对象的键(属性名称)转换为$_POST 键。

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    • 2023-03-31
    相关资源
    最近更新 更多