Home > Ajax | PHP | フレームワーク > CakePHP+jQuery

CakePHP+jQuery

wordpressのwp.Vicunaは軽そうでいいんだけど、どうもiG:Syntax Hiliter のレイアウトがくずれるな。

最近CakePHPを使ってみているけれども、ちょっとはまったのでメモ。
はまった状況は下記の通り。

  1. 現象
      下記をもちいた文字列コンプリーション機能を持つテキストボックスの作成において、意図したとおりの動作をしないケースがあった。

    1. CakePHP
    2. jQuery
    3. autocompleteライブラリ(JSON使用)
    4. IE
    5. ただし、Firefoxでは正常に動作した。

  2. 実装
      今回の問題となった実装を述べる。
      CakePHPを用いて作成したWebページにおいて、Ajaxによる文字列コンプリーションを行った。
      具体的な実装方法は以下の通り。

    1. jQueryのautompleteプラグインを用いてコンプリーション機能を持つテキストボックス(input type=”text”)を作成する。コンプリート用のデータはJSON形式でJavascript側に渡すとする。データ取得用のURLは“~~/モデル名/autocomplete/”とする。
    2. Javascript側に渡すJSONデータを返すページをCakePHPで作成する。適当なコントローラにfunction autocomplete()を追加し、対応するビュー(autocomplete.thtml)を作成する。 autocomplete()内で$this->layout = “ajax”;とし、余計なhtmlタグを出力しないようにする。
    3. autocomplete.thml内にJSON形式でデータを出力するコードをかく。
  3. 原因
      “~~/モデル名/autocomplete/”で返すページにCakePHPが自動的に表示にかかった時間を出力していた。
      出力されていたのはHTMLコメント形式のデータ<!– x.xxx s –>。
      結果として返されていたデータは下記のような形式となっていた。
      [‘aaa’,’bbb’,’ccc’] <!– 0.123s –>
      jQueryのJSONパーザにおいて、Firefoxでは上記形式を正しくパーズできるが、IEでは処理できずにエラーとなっていた。
  4. 対処
      “config/core.php”で定義されているdefine(‘DEBUG’, 1);を0にすれば、時間出力はされなくなるので、実際にリリースする際は問題ない。ただし開発中はDEBUGを定義しておきたいため、今回は “webroot/index.php”の最下段

      
      if (Configure::read() > 0) {
      echo "<!-- " . round(getMicrotime() - $TIME_START, 4) . "s -->";
      }
      

      をコメントアウトした。

  5. 参考文献
    1. CakePHP
    2. jQuery
    3. autocomplete

以上

Comments:1

コスミー 07-06-24 (日) 23:09

IEだと番号がめちゃくちゃだな。

Comment Form
Remember personal info

Trackbacks:4

Trackback URL for this entry
http://red-treasure.com/report/wp-trackback.php?p=28
Listed below are links to weblogs that reference
CakePHP+jQuery from コスミー報告書[社外秘]
trackback from 00:31 13-04-20 (土) 13:22

00:31

コスミー報告書[社外秘] – CakePHP+jQuery

trackback from Advanced links search 13-05-01 (水) 22:13

Advanced links search

コスミー報告書[社外秘] – CakePHP+jQuery

trackback from Online Casino - onlinecasinos911.co.uk 13-07-17 (水) 19:01

Online Casino – onlinecasinos911.co.uk

コスミー報告書[社外秘] – CakePHP+jQuery

trackback from :: ENZOHEALTH.COM :: - C.F. – 레드 디어 13-07-19 (金) 4:31

:: ENZOHEALTH.COM :: – C.F. – 레드 디어

コスミー報告書[社外秘] – CakePHP+jQuery

Home > Ajax | PHP | フレームワーク > CakePHP+jQuery

Search
Feeds
Meta
 合計:000250
 今日:0118 昨日:0132

Return to page top