将Ajax数据发布到Controller函数?

时间:2011-07-07 17:47:46

标签: php codeigniter jquery

在我的PHP / jQuery应用程序中,我有一个javascript文件,我可以在其中调用外部PHP文件(post_data.php):

$.ajax({
            type: "POST",
            data: "some data",
            url: "post_data.php",

现在,我不想调用php文件,而是调用CodeIgniter控制器函数Data/post_data,那么如何调用该函数而不是post_data.php

我想要调用的javascript文件位于:

root/js/test.js

虽然功能位于此处:

root/application/controllers/data/post_data

3 个答案:

答案 0 :(得分:3)

ajax需要一个完整的网址:

$.ajax({
        type: "POST",
        data: "some data",
        url: "http://www.yourdomain.com/urpath/post_data"});

原因是调用Ajax的Javascript文件不知道.php文件的服务器位置。因此,通过使用绝对路径,您可以确保完成呼叫。此外,要在使用Javascript文件之前对其进行测试,请将该网址复制并粘贴到您的浏览器中。如果没有显示404错误,那么你的路径就好了。

答案 1 :(得分:0)

要添加Doaks响应,您也可以这样做

$.ajax({
    url: "<?php echo site_url('data/post_data'); ?>",
    type: "POST",
    data: data,

答案 2 :(得分:0)

你可以使用$ .post()JQuery函数,它更简单,并针对POST请求进行了优化。对于路由,您可以只设置控制器和方法。它是应该的。

$.post("admin/newphone", {
        phone: $('input[name="phone"]').val()
},

链接到JQuery文档http://docs.jquery.com/Post