将数据从ajax发送到控制器codeigniter

时间:2017-07-06 14:48:05

标签: javascript php ajax codeigniter

我尝试从javascript发送数据到使用ajax的控制器中运行。但阿贾克斯不会发送。我在下面发布我的代码:

在javascript函数中

var day = $(obj).text();
var base_url = $('#baseurl').val();

$.ajax({
    url: base_url + "Front_end_controller/eventi",
    method: 'POST',
    data: {date: day},
    success:function(result) {
        alert(result); // alert your date variable value here
    }
});

在控制器中

public function eventi()
{
    $day = $this->input->post('date');
    var_dump($day);
}

3 个答案:

答案 0 :(得分:0)

我怀疑你错过了什么。在ajax函数中添加错误回调:

var day = $(obj).text();
var base_url = $('#baseurl').val();

$.ajax({
    url: base_url + "Front_end_controller/eventi",
    method: 'POST',
    data: {date: day},
    success:function(result) {
        alert(result); // alert your date variable value here
    },
    error:function(result) {
        console.log(result);
    }
});

现在,检查控制台是否有错误。 它也可能是路线上的错误(也请检查/application/config/routes.php。)

答案 1 :(得分:0)

您应该尝试echo而不是var_dump。此外,检查输入是否实际存在并回显消息,如果不是。

public function eventi()
{
    $day = $this->input->post('date');
    if(isset($day)) //not NULL
    {
        echo $day;
    }
    else
    {
        echo "No Data";
    }
}

你也可以使用三元来决定回应什么。该行产生的结果与上面的if / else语句相同。

echo isset($day) ? $day : "No Data";

答案 2 :(得分:0)

试试这个。看看它是否有效。只需使用"输入"而不是"方法"

var day = $(obj).text();
var base_url = $('#baseurl').val();

$.ajax({
    type: 'POST',
    url: base_url + "Front_end_controller/eventi",
    data: {date: day},
    success:function(result) {
        alert(result); // alert your date variable value here
    },
    error:function(result) {
      console.log(result);
    }
});

在你的控制器中:

public function eventi()
{
    $day = $this->input->post('date');
    if(!empty($day)) 
    {
        echo $day;
    }
    else
    {
        echo "No Data";
    }
}