wordpress / php-Ajax/Jqueryは重力フォームを別のページにドロップダウンして送信します
ユーザーが入力する重力フォーム(mysite.com/gform/)に、最初のドロップダウン選択値に基づいて表示するページの1つに動的に入力したいと思います。このため、フォームのコンテンツを表示するためのすべてのページで、選択されているドロップダウン入力を知る必要があります。実際、フォームが別のページ(mysite.com/gview1/)に送信されるときに、別のページの値を選択するためのアクセス権が必要です。これにより、その選択値が別のページの特定の値である場合にフォームデータを読み込むことができます。 。これまでに行ったことは次のとおりです。
-gravityforms.phpのGFFormsクラス:init関数でフックを登録し、すべてのユーザーにそのようにアクセスできるようにしました:
add_action( 'wp_ajax_my_enqueue', 'my_enqueue' );
add_action( 'wp_ajax_nopriv_my_enqueue', 'my_enqueue' );
このファイルの「maybe_process_form()」静的関数の後に、my_enqueueを追加しました:
function my_enqueue() {
wp_enqueue_script( 'ajaxSendField', plugins_url( '/js/ajaxSendField.js',
__FILE__ ), array('jquery') );
wp_localize_script( 'ajaxSendField', 'data',
array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) );
}
ここで、input_3は選択者の名前です。
-アクティブ化された重力がajaxを形成し、jsフォルダーにajaxSendField.jsという名前のファイルを作成しました:
<script type="text/javascript" >
jQuery(document).ready(function() {
jQuery('#input_2_3').on("change", function(event) {
ajaxSend(this.form);
});
ajaxSend(this.form);
event.preventDefault();
function ajaxSend(form1) {
$.ajax({
url: 'mysite.com/gview1/',
type: 'POST',
var data = {
'action': 'my_enqueue',
'selectedValue': $('#input_2_3').val();
}
});
ajaxurl = "../../../../admin-ajax.php";
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
}
</script>
ここで、input_2_3は、Chromeで検査するときのドロップダウン選択のIDです。これまでのところ、フォームを送信するのではなく、ドロップダウンメニューを選択して値を渡す場合は、onchangeイベントをフォームに設定する必要があります。しかし、ページソースを表示すると、表示されません。したがって、javascriptファイルはロードされていないと思います。
-custompage1.phpという送信された値を表示するためのページのテンプレートで、フッターの上に以下のコードを追加しました:
<?php
echo "Hi ".$_POST['selectedValue']."<br>"."Bye for now";
echo $_POST['input_3']."<br>"."Bye";
?>
ここで、input_3は選択者の名前です。しかし、フォームを送信すると(Ajax)、私は
しか受け取りませんこんにちは
さようなら
さようなら
すべてのスニペットは正しいですか?スニペットを適切な場所に挿入していますか?
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。