使用Codeigniter在jQuery Mobile上进行Ajax请求

时间:2011-06-14 10:37:12

标签: php jquery ajax codeigniter jquery-mobile

目前我正在尝试使用jQuery Mobile执行ajax请求。我试图在http://www.giantflyingsaucer.com/blog/?p=2574上使用示例。是的,它完美无缺。但是当我试图在codeigniter中使用代码时,问题就出现了。

这是我的控制器:

<?php
class Ajax extends CI_Controller {
    function __construct() {

    }

    function index() {
        ?>
        <!DOCTYPE html>
        <html>
            <head>
            <title>Submit a form via AJAX</title>
              <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.css" />
              <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
              <script src="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.js"></script>
        </head>
        <body>
            <script>
                function onSuccess(data, status)
                {
                    data = $.trim(data);
                    $("#notification").text(data);
                }

                function onError(data, status)
                {
                    // handle an error
                }        

                $(document).ready(function() {
                    $("#submit").click(function(){

                        var formData = $("#callAjaxForm").serialize();

                        $.ajax({
                            type: "POST",
                            url: "callajax",
                            cache: false,
                            data: formData,
                            success: onSuccess,
                            error: onError
                        });

                        return false;
                    });
                });
            </script>

            <!-- call ajax page -->
            <div data-role="page" id="callAjaxPage">
                <div data-role="header">
                    <h1>Call Ajax</h1>
                </div>

                <div data-role="content">
                    <form id="callAjaxForm">
                        <div data-role="fieldcontain">
                            <label for="firstName">First Name</label>
                            <input type="text" name="firstName" id="firstName" value=""  />

                            <label for="lastName">Last Name</label>
                            <input type="text" name="lastName" id="lastName" value=""  />
                            <h3 id="notification"></h3>
                            <button data-theme="b" id="submit" type="submit">Submit</button>
                        </div>
                    </form>
                </div>

                <div data-role="footer">
                    <h1>GiantFlyingSaucer</h1>
                </div>
            </div>
        </body>
        </html>
        <?php
    }

    function callajax() {
        echo "ok";
    }
}

我想在通知中显示'ok'。我m trying to call function callajax instead of call from callajax.php is this possible or do I need to create callajax.php? I试图创建callajax.php但它失败了。

谢谢,

1 个答案:

答案 0 :(得分:5)

您可能希望网址为:

 url: "ajax/callajax",

当你在控制器ajax中调用callajax函数时。