2011-06-14 152 views
1

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

这里是我的控制器:

<?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,但它失败了。

谢谢

回答

5

你可能想要的网址是:

url: "ajax/callajax", 

正如你所呼叫的控制AJAX中的callajax功能。

+0

哇,它的工作原理!谢谢..如果我尝试从callajax()调用xml或json,它是否一样?当然在调用xml视图并将其加载到callajax()之后。 – justmyfreak 2011-06-14 10:46:22

+0

为此,您可以将ajax/callajax当作您的'页面'。 IE浏览器。如果你去yourdomain.com/ajax/callajax你会看到消息“ok”。因此,您可以在该功能中执行任何您想要的操作,并且将按正常方式返回。链接到XML文件,你通常会做。如果他们在yourdomain.com/xml/my-xml.xml,那么只需链接到site_url(xml/my-xml.xml)。 – 2011-06-14 10:51:03

+0

谢谢你的另一个伟大的答案:D – justmyfreak 2011-06-14 10:54:32