0

テーブルの行数を表示しようとしています。コントローラーには、次のような関数があります。

public function index(){
  $count= $moviecount = $this->Media->find('count');
  $this->set(array('data' => $count, '_serialize' => 'data'));
}

私の index.ctp には、div とすべてを含む通常の HTML スクリプトがあります。ここで私の JavaScript ファイルでは、次のようなことを行います。

function checkTbl(){
checkBrowser();//callback function
xmlhttprequestobject.open("GET", "/url/", false); //async
xmlhttprequestobject.onreadystatechange = function(){
if(xmlhttprequestobject.readyState==4 && xmlhttprequestobject.status==200){
  alert(xmlhttprequestobject.responseText);
}
}
xmlhttprequestobject.send();
}

しかし、画像イベント onClick をクリックすると、応答は HTML であり、カウントの整数値ではありません。助けてください。

4

2 に答える 2

1

RequestHandler コンポーネントをロードしていますか? .json 拡張子を使用して URL を呼び出さない場合は、json として応答するようにビューを手動で設定する必要があります。ルーターを使用して拡張機能を解析すると、コンポーネントが読み込まれている場合、json 応答が自動的に取得されます。このページの指示に従いましたか?

于 2013-07-08T00:27:19.910 に答える
0

resposeText を json_encode として使用する場合は、コントローラー関数で次のようなことを試してください。これを使用すると、.ctp ファイルは必要ありません。

 public function index()
 {
     $count= $moviecount = $this->Media->find('count');
     //$this->set(array('data' => $count, '_serialize' => 'data'));
    return new CakeResponse(array('body' => json_encode($count)));
 }
于 2013-07-08T05:35:38.453 に答える