wordpress / php - Ajax / Jquery发送重力表格下拉到另一页

时间:2017-11-05 11:03:57

标签: php jquery ajax wordpress gravity-forms-plugin

我想在其中一个页面中动态填充用户填写的重力表单(mysite.com/gform/),以便根据第一个下拉选择值进行查看。为此,在查看表单内容的所有页面中,我需要知道已选择的下拉输入。事实上,我希望当表单提交到另一个页面(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是选择的名称。

-Activated gravity形成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>

其中,当我通过chrome检查时,input_2_3是下拉选择的id。到目前为止,如果我们想通过选择下拉菜单而不是提交表单来传递值,则应该在表单中设置onchange事件。但是,当我查看页面源时,它并没有显示出来。所以,我认为没有加载javascript文件。

- 在用于查看名为custompage1.php的提交值的页面模板中,我在其页脚上方添加了以下代码:

<?php
echo "Hi ".$_POST['selectedValue']."<br>"."Bye for now";
echo $_POST['input_3']."<br>"."Bye";
?>

input_3是select的名称。但是在表单提交(Ajax)之后,我只能得到

你好

再见

再见

所有的片段都正确吗?我是否将片段插入正确的位置?

0 个答案:

没有答案