2012-04-14 10 views
3

私はこのように構成されて開発していますウェブサイト:

それがある$_GET['module']が設定されているホームページの内容のためのモジュールを切り替え機能、例:

function switchmodules() 
{ 
    $module=$_GET['module']; 
    switch($module) 
    { 
     case 'getnews': news(); break; 
     default: def(); 
    } 
} 

ご覧のとおり、このスイッチはモジュールごとに別の機能を呼び出します。例えば

私はこの方法で動作するようにgetNews()を書いた:

function getNews() 
{ 
    $id=$_GET['id']; 
    if(!id) 
    { 
     //CODE TO LIST ALL NEWS 
    } 
    if(isset($id)) 
    { 
     //CODE TO GET ONLY 1 NEWS BY ID 
    } 

} 

だから、あなたは私が各モジュールのためのユニークなファイルを使用していない見ることができるように。モジュールのすべての操作は、アクションを再度切り替えて結果を変更する独自の機能の一部です。

私は、データベースからニュースを取得したい場合は、私がこのようなURLを使用する必要があります。?index.php&module=getnews&id=1

私の質問は今です:jQueryを使って
$.ajax()方法は、(例えば)ニュースを得るためにそこの方法ですこの構造体を関数に基づいて、get?または、すべてを変更して各機能のファイルを作成する必要がありますか?

+0

あなたはanythinkを変更する必要はありません、それだけであなたはちょうどあなたが問題ないはずよりもHTMLにレンダリングする形で結果を送信する場合は、結果の表示方法 –

+1

あなたのコードは大丈夫です、今、jQuery $ .ajax(http://api.jquery.com/jQuery.ajax/)について読んでください。 –

+0

私はまだ理解できません。 $ .ajax関数url: "" i URLを通すことはできません ?index.php &module = getnews&id = 1 そうですね、簡単な例を教えてください。 –

答えて

1

あなたは単に$ .ajax()を介して同じURLを呼び出すことができます。 axjax呼び出しのために変更すべき唯一のことは、あなた自身がレイアウトを出力するのではなく、ニュースそのものだけを出力することです。

<script> 
    $.get(
     '/test.php', 
     { 
      module: 'news', 
      id: 1 
     }, 
     function(data) { 
      alert(data); 
     } 
    ); 
</script> 

とJSはにGETリクエストを送信します。このコードはあなたが行うことができると言う「test.phpを」である場合は、

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 

    // dont output layout 
} 
1

のようなAJAXリクエストを確認することができますPHPの

test.phpと必要なパラメータ。次に、サーバースクリプトが要求の処理方法を決定します。

0

jQueryの

$(document).ready(function() { 
    var form = '#my_awesome_form'; 

    $(form + ' input[type=submit]').click(function(e) { 
     e.preventDefault(); 

     $.ajax({ 
      type: "GET", 
      url: 'index.php', 
      data: $(form).serialize(), 
      success: function(response) { 
       alert('DONE!'); 
      } 
     }); 
    }); 
}); 

HTML

<form id="my_awesome_form" // OTHERS PROPERTIES //> 
    // LOT OF FIELDS HERE // 
    <input type="submit" value="Send"> 
</form> 
+0

私はクリックにfalseを追加します。そうしないと、フォームが送信され、ajaxリクエストがキャンセルされます –

+0

Thanks @zolex =) –

関連する問題