2011-06-14 18 views
1

現在、jQuery Mobileを使用してajaxリクエストを行っています。私はhttp://www.giantflyingsaucer.com/blog/?p=2574の例を使用しようとしています。はい、それは完全に動作します。しかし、私がcodeigniterの中でコードを使用しようとすると、問題が起こっていました。私は通知に 'OK' を表示させたいjQuery MobileのAjaxリクエストとCodeginiterの併用

<?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"; 
    } 
} 

は、ここに私のコントローラです。 I 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を作成しようとしましたが、失敗しました。

url: "ajax/callajax", 

あなたは、コントローラのAJAX内callajax関数を呼び出しているとおり:

はおそらく、URLになりたい、

答えて

5

、ありがとうございました。

+0

うわー、うまくいく!ありがとうございました..私はcallajax()からxmlまたはjsonを呼び出そうとすると同じですか?もちろんxmlビューを呼び出してからcallajax()の中にロードしてください。 – justmyfreak

+0

この目的のために、ajax/callajaxをあなたの 'ページ'として扱うことができます。つまりyourdomain.com/ajax/callajaxに行くと、「ok」というメッセージが表示されます。だから、あなたはその機能の中で何でもできますし、それは通常通り返されます。 xmlファイルにリンクすると、通常どおりにやります。それらがyourdomain.com/xml/my-xml.xmlにあった場合は、site_url(xml/my-xml.xml)とリンクするだけです。 –

+0

別の偉大な答えをありがとうございました:D – justmyfreak

関連する問題