私は次の問題を抱えています...
私のアプリケーションでは、php、smarty テンプレート、および jQuery を使用しています。
smarty テンプレート内には、POST メソッドでフォームが定義されています。フォームのアクション パラメータは次のように定義されます。
action={if isset($search_place)} {link->somePhpFunction($search_place) {/if}
... POSTED パラメータに応じてアクションを変更する必要があるためです。
「search_place」という名前の入力 (テキスト) は、フォーム内で定義されます。
クライアント側でいくつかのアクション (値のチェック、オートコンプリートなど) を実行する必要があるため、送信ボタンは jQuery 関数にリンクされています。
ボタンがクリック
されたとき、私はする必要があります
ボタンがクリックされると、jQuery ハンドラーが呼び出され、いくつかのチェック/修正が実行され、フォームを含むページが表示されます。
問題は、アクション パラメータをフォームから定義する前に、search_place 変数が不明であり、php 関数がまったく呼び出されないことです。また、ボタン ハンドラーに Cookie を設定し、フォーム アクションを {$smarty.cookies.search_place} 値に設定しようとしましたが、問題は別の問題に変わりました。フォームは常に前のボタン クリックのアクションを実行するため、正しい結果を得るには、ボタンを 2 回クリックする必要があります。
また、php 関数がデータベース内の大きなテーブルから正しいものを選択するため、必要なアクション パラメータを jQuery イベント ハンドラに転送する方法がないことにも言及する必要があります。これが可能であれば、アクション パラメータを jQuery 関数から簡単に変更できます...
私が知っている唯一の方法は、AJAX を使用して正しいパラメーターを取得し、ボタン イベント ハンドラーから正しいアクション パラメーターを割り当てることですが、サイト訪問者の多くがブラウザーの javascipt を有効にしていないため、これは適切な解決策ではありません。
解決策は、jQueryイベントハンドラーからボタンを(プログラムで)もう1回クリックすることもできますが、その方法がわかりません...
この問題を解決するための助けやアイデアは大歓迎です...
前もって感謝します。混雑する