0

CakePHP 2.x では、このパスを使用して訪問者に結果を 表示ます

ビューに「loading div」を配置する必要があります。しかし、私は構造を決めることができませんでした。

Googleショーで見つけた例では、ユーザーがボタンをクリックすると、AJAXリクエストが行われ、結果がそのdivに表示されます。

しかし、私の場合、ページが読み込まれると、そのリクエストは非同期で行われ、結果が利用可能になると、別の div に表示されます。

以下のファイル構造に関して、AJAX リクエストをどこに配置すればよいですか? AJAX リクエストが成功した場合、 showResultsメソッドの行を削除して別のアクションを実行する必要がありますか?

CakePHP 2 way で AJAX リクエストが成功した場合に結果を表示するための構造を推奨していただけると嬉しいです。ありがとうございました

// appcontroller.php
class AppController extends Controller {
  function getSomeResults() {
        // make some http requests to twitter API
  }
}

// mycontroller.php
class MyController extends AppController {
  public function showResults() {
    $data=$this->getSomeResults();
    $this->set('data', $data);
    $this->render('myelement');
  }
}


// myelement.ctp
<div id="before">
  Please wait loading..
</div>

<div id="results" style="display: none">
  <?php echo $data ?>
</div>


// myscript.js
$(document).ready(function() {
    $("#results").hide();
    setTimeout('$("#results").show();',8000);
}
4

1 に答える 1

0

Webサービスを取得してから、cakephpを介してデータを渡すように見えます。つまり、ajaxを使用しているようには見えません。

すでにjqueryを使用しているように見えるので、jqueryのajaxメソッド[http://api.jquery.com/jQuery.ajax/]を使用してTwitterに接続することをお勧めします。したがって、showResults()を削除するだけでなく、getSomeResults()も削除します。この情報を更新する必要がある場合は、このajax呼び出しを関数に設定し、定期的に呼び出すことができます。

ページの上部にロードするdivがない限り、jqueryを使用して、結果のdivを現在のロードからデータに変更できます。

ちょうど私の2セント。

于 2012-05-17T19:25:59.473 に答える