私はモジュールとして複雑なAJAXベースのソリューションをDrupal 7サイトに構築しています。私はjQuery ajax呼び出しに応答するスタンドアロンのPHPスクリプトを作成せず、私のdrupalモジュール内にコードを実装することにしました。Drupal 7関数ajaxレスポンダ
私の問題は、jQUERYとDRUPALの間の接続を確立していることです。私のCLICK EVENTに応答する関数です。それは私がアンインストールし、停止し、モジュールを再起動したときに動作を停止し、
function staff_filter_menu(){
$items = array();
$items['staff/filtering/results/%'] = array(
'page callback' => 'staff_filter_function',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
'delivery callback' => 'staff_filter_deliver',
);
$items['staff/filtering/saveclipboard'] = array(
'page callback' => 'staff_filter_savetoDB',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
'delivery callback' => 'staff_filter_deliver',
);
drupal_flush_all_caches();
return $items;
}
をしかし:
私は、次のコードを使用していました。それは信頼できる戦略ではないようです。
私はあなたのポイントクライブを参照していますが、作成しようとしていたメニュー(上記の最初のもの)が作成されていないため、drupal_flush_all_cachesを呼び出す理由があります。無理な回数のキャッシュをフラッシュした後、最終的に作成されたので、私は自分のコードからキャッシュをクリアすることによって強制しました。また、これはDrupalでAJAXコールバックを提供する最善の方法ですか? – sisko
@sisko 'delivery callback'メソッドの使用を意味しますか?もしそうなら、私はそうするのが最善の方法だと思っています...コアAJAX関数はそれをそうするようです:) – Clive