2011-06-14 158 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