1

我试图使用控制器函数来读取 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 dump 正在打印null

4

2 回答 2

0

将您的 ajax 函数更改为:

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

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

于 2013-05-28T18:37:16.540 回答
0
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);
    }
}
于 2013-05-28T18:20:56.137 回答