1

ユーザーが私の Web サイト (PHP) でテキスト内の単語を選択して右クリックすると、jQuery コンテキスト メニューが表示されます。これは、既存の jQuery コンテキスト メニュー プラグインの 1 つを使用して行うことができます。

しかし、コピー/貼り付け/切り取りなどのオプションに加えて、PHP を使用して選択した単語で何かをしたいです。これは、少し難しいと思います。たとえば、次のスクリプトを使用します。

$selection = //the selected word or text
$target = //fetch from MYSQL database
$output = array();
while ($row = //fetch $target) {
   If ($selection == $row->input) { array_push($output,$row->output); }
}
echo '//menu '.print_r($output).''; // of course not print_r! Just for the example's sake.

データベースの例: データベースの例 (特大の画像で申し訳ありません)

サンプル テキストで「lazy」という単語を選択して右クリックすると、jQuery ボックスがポップアップし、PHP によって抽出されたデータベースからの結果が表示されます。

例: テキスト&メニュー例

わかりましたので、javascript を PHP と組み合わせることができず、解析することしかできないことはわかっていますが、データベース抽出を行うメニューで iframe をロードすると、javascript を使用して iframe src を設定することでジョブが実行されると思いました。 URLで選択された単語。

ただし、iFrame はこれを解決する良い方法ではありません。

質問: どうすればこれを効果的に行うことができますか? 右クリックでこのスクリプトを実行し、メニューにデータベース関連のコンテンツを表示しますか?

4

3 に答える 3

2

コード例を提供するには、使用しているプラ​​グインを知る必要がありますが、一般的には、次のようにします。

  • jQuery コンテキスト メニューの項目にはクリック ハンドラが必要です。これを使用して、「選択」用語がクリックされたときに AJAX 要求をサーバーに送信します。
  • ユーザーに何らかのフィードバックを提供するようにしてください (ローダーまたはスピナー)。
  • 結果をサーバー側の配列に入れます。
  • 配列を JSON エンコードし、応答として送信します (例: echo json_encode($output)
  • クライアント側で JSON.parse(response) を実行すると、結果を含む JS オブジェクトが得られます
  • これらの結果をコンテキスト メニューに入れます (繰り返しますが、使用しているプラ​​グインによって異なります)。
于 2013-06-05T18:43:56.767 に答える