戸田 広
info****@sciss*****
2013年 1月 12日 (土) 16:20:29 JST
こんにちは、戸田です。 > ためしにjsフォルダ内へsuggest.phpを設置し、パスを指定して呼び出せばいいのかと思ったのですが suggest.php は、CodeIgniter からは独立したスクリプトとして 実行するように変えた、ということですよね? でしたら、CodeIgniter がどうであるか、ということは あまり関係は無く、単にサーバー側のスクリプト設置場所と クライアント側のリクエスト先URLが合致していないのだと思います。 まずは、この2点がどのような文字列になっているか 確認してみてください。 Firebug をお使いでしたら、コンソールに どこのURLをリクエストして、404などHTTPエラーになったか 表示されるようになっています。 クライアント側のリクエスト先URLは、これで調べてみてください。 以上です。 On 2013/01/12, at 15:41, 小島健太郎 wrote: > やはり解決策がわかりません。 > > お恥ずかしい話ですが、先ほどの「解決しました」というメールは勘違いでした。 > (正常に動作する非CodeIgniter環境でテストして、一人で喜んでしましました。 > どうやら完全に気持ちが追い詰められているようです。) > > やろうとしていることは > コントローラc_Test内のクラスC_Test内メソッドfunction AddNewより呼び出されたビューv_AddNew(新規登録画面)へ > Suggest機能付き検索フォームを設置しようとしています。(http://cmf.ohtanz.com/suggest) > > さきほどは、ビュー内でさらにsuggest.phpが呼ばれるのがいけないのかと思い、 > ためしにjsフォルダ内へsuggest.phpを設置し、パスを指定して呼び出せばいいのかと思ったのですが > 下記のエラーがでました。 > 「要求された URL は本サーバでは見つかりませんでした。 > <a href="http://localhost/conference/index.php/c_Test/addNew/(引数1)/(引数2)"> > 参照元ページ</a>のリンクが間違っているか、古くなってしまっているようです > 」 > > CIで上記を設置する方法はないのでしょうか? > たびたび申し訳ありませんが、よろしくお願いいたします。 > > 小島 > > > ********************************************** > > 2013年1月12日 15:22 小島健太郎 <kojim****@gmail*****>: >> ご回答ありがとうございます。 >> >> 頂いたメールよりヒントをいただき、v_addNew上のSuggest用テキストボックスを仮に下記のように書き直してみたところうまく動きました。 >> (前回はsuggest.phpをapplication/viewsフォルダに配置し、ビュー側からパス指定なしで呼び出していましたが、 >> 仮に(よくない例ですが)jsフォルダへ配置し、<?php echo base_url()."js/suggest.php" >> ?>と、パス指定で呼び出すようにしました。) >> >> <input type="text" id="POST1" name="POST1" autocomplete="off" >> size="10" value="" onFocus="suggestOn(0,'POST1','ADDR1','<?php echo >> base_url().'js/' ?>suggest.php');" onBlur="suggestOff('POST1');"> >> <input type="text" id="ADDR1" name="ADDR1" autocomplete="off" >> size="40" value="" onFocus="suggestOn(1,'ADDR1','POST1','<?php echo >> base_url().'js/' ?>suggest.php');" onBlur="suggestOff('ADDR1');"> >> >> 戸田様、大変参考になるアドバイスをありがとうございました。 >> >> 小島 >> >> ****************************************************************** >> >> 2013年1月12日 14:31 戸田 広 <info****@sciss*****>: >>> こんにちは、戸田です。 >>> >>>> ■CodeIgniter環境 >>>> >>>> GET http://localhost/....../index.php/c_Test/addNew/suggest.php?TYPE=0&KEY=1 >>> >>> CodeIgniter では、表面的に実行されているのは index.php だけで、 >>> URL の "index.php" 以降の文字は、index.php の引数として処理されます。 >>> >>> 上記のURLですと、次のように処理されることになると思われますが >>> これはたぶん、ご意図されている構成や処理と、ちょっと違いますよね? >>> >>> ・addNew.php が /application/controllers/c_Test ディレクトリー内にある。 >>> >>> ・addNew クラスに suggest.php() という名前の public メソッドがある。 >>> >>>> レスポンス >>>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >>>> "http://www.w3.org/TR/html4/loose.dtd"> >>>> <html> >>>> : >>>> : >>>> </html> >>> >>> >>> エラー画面が返ってきているとかではないですよね? >>> CodeIgniter は、基本的に >>> コントローラーのメソッド内で明記したビューファイルしか出力しませんので、 >>> エラーではなく 意図しないHTMLが出力されている場合は、 >>> CodeIgniterに属した問題によるものではなく、 >>> 単に意図しないメソッドが実行されているのだと思います。 >>> >>> >>> 以上です。 >>> >>> >>> >>> On 2013/01/12, at 13:20, 小島健太郎 wrote: >>> >>>> お世話になっております。小島と申します。 >>>> >>>> CodeIgniterを使用してシステムを作っており、問題にぶち当たりました。アドバイスをいただけるとありがたいです。 >>>> 環境はWindows+XAMPPです。 >>>> >>>> 新規登録画面の一部で、Ajaxを使用したSuggest機能を使おうとしています。 >>>> >>>> 下記サイトで紹介されているSuggest実装方法を参考に、自分の環境で使用できるように少し修正を加え、 >>>> 非CodeIgniter環境(ローカルのhtdocs直下)で正常に動作するところまではうまくいきました。 >>>> 参考サイト:http://cmf.ohtanz.com/suggest >>>> (ちなみに内容は、郵便番号テキストボックスへ郵便番号を入力すると「郵便番号&住所」の候補が表示され、 >>>> 選択したデータが郵便番号テキストボックスと住所テキストボックスへそれぞれセットされるというものです) >>>> >>>> 次に、全く同じコードを、CodeIgniterで構築中の画面の一つv_addNew(新規登録画面)へ書きました。 >>>> (ここで当然Javascriptの読み込み先パス等には注意を払いました。) >>>> >>>> ですが動かしてみると(郵便番号を入力し始めると)、候補表示スペースに、開いている画面v_addNewと全く同じ画面が表示されます。 >>>> >>>> FireBugにて入力時のレスポンスを確認すると(使い方をあまりわかっていませんが)下記のような感じです。 >>>> >>>> >>>> ■非CodeIgniter環境で郵便番号に"1"と入力した場合 >>>> >>>> GET http://localhost/AjaxTest/suggest.php?TYPE=0$KEY=1 >>>> >>>> レスポンス >>>> <font color=red>1</font>000001:東京都千代田区千代田 >>>> <BR><font color=red>1</font>000002:東京都千代田区皇居外苑 >>>> <BR><font color=red>1</font>000003:東京都千代田区一ツ橋 >>>> >>>> >>>> ■CodeIgniter環境 >>>> >>>> GET http://localhost/....../index.php/c_Test/addNew/suggest.php?TYPE=0&KEY=1 >>>> >>>> レスポンス >>>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >>>> "http://www.w3.org/TR/html4/loose.dtd"> >>>> <html> >>>> : >>>> : >>>> </html> >>>> >>>> >>>> CodeIgniter環境では同画面のHTMLがすべて返されているようです。 >>>> これを解消するにはどの辺りをあたればいいか予想つきますでしょうか? >>>> よろしくお願いします。 >>>> >>>> 小島 >>>> >>>> _______________________________________________ >>>> Codeigniter-users mailing list >>>> Codei****@lists***** >>>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>> >>> _______________________________________________ >>> Codeigniter-users mailing list >>> Codei****@lists***** >>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users