2011-06-20 7 views
0

jquery.ajaxをcodeigniterに実装する際に問題があります。私はコントローラの特定の機能にコントロールを送信したい。私はこのjquery.ajax in codeigniter

var url='<?php echo('First/index');?>'; 
var ajaxoptions={url:url,success:submit_ajax_response}; 

Firstように私のjavascript関数でURLを設定していますことは、私のコントローラであるとindexは私が制御を送りたい私の関数です。私は、それは次のURLと呼ばれるにイベントをクリックすると

http://localhost/codeigniter/First/index 

が形成されているURLは大丈夫ですが、それは404のエラーを生成しています。私はzendframeworkでこの種の操作を何度もやっていますが、codeigniterでこの仕事を達成することはできません。私は、URLにindex.phpを追加するとうまく動作することに気付きました。 index.phpを追加すると、URLは次のようになります

http://localhost/codeigniter/index.php/First/index 

私はルートファイルからindex.phpを削除する方法に驚いています。私はroute.phpファイルに2行しかありません

$route['default_controller'] = "First"; 
$route['404_override'] = ''; 

私は既定のコントローラとして既にコントローラを作っています。 私は正しいことをしていますか?問題とは何ですか?このジョブを達成する方法は?

+0

URLは罰金ではありません:これはあなたのパブリックディレクトリ(あなたのindex.phpと同じ場所)のルートにすべきですか?問題があなたのajaxリクエストである場合は、そのコードも投稿する必要があります。 –

+0

@Calving Froedge私はそれに気付きましたindex.php /をURLに含めるとうまくいきます。ルートからindex.phpを削除するには? –

+0

@Calving Froedge。ちょっと私の編集した質問 –

答えて

3

あなたはいくつかのことを確認する必要があります。まず、/application/config/config.phpにインデックスファイルはこれに設定されていることを確認します

$config['index_page'] = ''; 

第二に、あなたは正しいの.htaccessを持っていることを確認してください。それはあなたがあなたのブラウザでそのURLに行くとき何が起こる404を生成している場合

<ifModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    Options FollowSymLinks 

    #Checks to see if the user is attempting to access a valid file, 
    #such as an image or css document, if this isn't true it sends the 
    #request to index.php 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 
+0

@Calving Froedge。おかげで、これは私が達成したいものです.... +1あなたのよく説明された答えのために+1 –

+0

あなたは魅力のように動作していただきありがとうございます –

3

あなたのURLには、CodeIgniterが持つ "index.php"というものがあります。 (あなたはURLヘルパーを必要とするので、この前のことをロード):このようにコードを変更し あなたの設定ファイルで指定されている

var url="<?php echo (index_page() . 'First/index');?>"; 
var ajaxoptions={url:url,success:submit_ajax_response}; 

index_pageは、あなたのサイト「インデックス」ページを返します。

CodeIgniterのリンクからindex.phpを削除するには、hereを参照してください。

+0

を参照してください彼は彼が経路からindex.phpを削除していない限り、それが動作するためには、index.phpをルートに追加する必要はありません。 –

+0

@Calvin Froedge:そのため、私はindex_page()をエコーし​​ました。彼がmod_rewriteでindex.phpを削除した場合、 '$ config ['index_page']'を変更しておく必要があります。 –

+0

@Calving Froedgeルートファイルからindex.phpを削除する方法は? –