Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Ajax变量传递给Codeigniter函数_Codeigniter_Jquery - Fatal编程技术网

将Ajax变量传递给Codeigniter函数

将Ajax变量传递给Codeigniter函数,codeigniter,jquery,Codeigniter,Jquery,我认为这是一个简单的问题 我有一个Codeigniter函数,它从表单中获取输入并将它们插入数据库。我想把这个过程简化。现在,函数的第一行从表单中获取id字段——我需要更改它以从Ajax post(它引用表单中包含必要值的隐藏字段)获取id字段。请问我该怎么做 我的Codeigniter控制器功能 function add() { $product = $this->products_model->get($this->input->post('id'));

我认为这是一个简单的问题

我有一个Codeigniter函数,它从表单中获取输入并将它们插入数据库。我想把这个过程简化。现在,函数的第一行从表单中获取id字段——我需要更改它以从Ajax post(它引用表单中包含必要值的隐藏字段)获取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');
}
以及jqueryajax函数

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

            }  
        });
        return false;
    });
和往常一样,我要提前表示感谢

   $("#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方法中的data选项。现在您可以像在控制器方法中一样使用
$this->input->post('id')

url: "/home/add",


那么我猜codeigniter会把它当作一个正常的参数来处理

谢谢索普,知道这一点很有用。我只需要更改codeigniter函数的第一行,这样它就不会查找表单输入,但是jQueryAjax的“表单输入”和“ajax变量”是一样的,它们都是通过HTTP请求发送的POST参数。AJAX不是一个存在的“东西”,只是一种方法的名称。
url: "/home/add/" + $("input#id").val(),