将Ajax变量传递给Codeigniter函数

时间:2010-05-06 06:39:22

标签: codeigniter jquery

我认为这很简单。

我有一个Codeigniter函数,它从表单中获取输入并将它们插入到数据库中。我想Ajax化这个过程。目前函数的第一行从表单中获取id字段 - 我需要更改它以从Ajax帖子(它引用包含必要值的表单中的隐藏字段)获取id字段。我该怎么办?

我的Codeigniter控制器功能

function add()
{
    $product = $this->products_model->get($this->input->post('id'));

    $insert = array(
            'id' => $this->input->post('id'),
            'qty' => 1,
            'price' => $product->price,
            'size' => $product->size,
            'name' => $product->name
        );

    $this->cart->insert($insert);
    redirect('home');
}

jQuery Ajax函数

$("#form").submit(function(){
        var dataString = $("input#id") 
        //alert (dataString);return false;  
        $.ajax({  
            type: "POST",  
            url: "/home/add",  
            data: dataString,  
            success: function() {

            }  
        });
        return false;
    });

一如既往,非常感谢。

2 个答案:

答案 0 :(得分:5)

   $("#form").submit(function(){
        var dataString = $("input#id") 
        //alert (dataString);return false;  
        $.ajax({  
            type: "POST",  
            url: "/home/add",  
            data: {id: $("input#id").val()},  
            success: function() {

            }  
        });
        return false;
    });

ajax方法中的注意数据选项。现在你可以像在控制器方法中一样使用$this->input->post('id')

答案 1 :(得分:4)

为什么不把它猛击到

的末尾
url: "/home/add",

喜欢

url: "/home/add/" + $("input#id").val(),

然后我猜codeigniter会把它当成一个普通的参数......?