【问题标题】:jQuery AJAX posting form to multiple other formsjQuery AJAX 将表单发布到多个其他表单
【发布时间】:2013-07-09 17:05:35
【问题描述】:

我有多个这样的表格:

<form class="form_game">
<select name="game" class="gm">
<option value="Badminton">Badminton</option>
<option value="Basketball">Basketball</option>
<option value="Football">Football</option>
</select>
</form>

<form class="form_branch">
<input name="action" type="hidden" value="the_ajax_hook_2" />
<select name="branch" id="branch" onchange="display_table();" >
<option value="CSE">CSE</option>
<option value="CE">CE</option>
<option value="ECE">ECE</option>
<option value="EE">EE</option>
<option value="IT">IT</option>
<option value="ME">ME</option>
<option value="PE">PE</option>
<option value="PG">PG</option>
</select>
</form>
<form class="form_year">
<input name="action" type="hidden" value="the_ajax_hook_3" />
<select name="year" id="year" onchange="display_table_1();" >
<option value="D1">D1</option>
<option value="D2">D2</option>
<option value="D3">D3</option>
<option value="D4">D4</option>
</select>
</form>

我的 jQuery AJAX 函数是:

function display_table(){

jQuery.post(the_ajax_script.ajaxurl, jQuery(".form_branch").serialize(),function(response_from_display_data_table){
            jQuery(".table_disp").html(response_from_display_data_table);
        });
}

function display_table_1(){

jQuery.post(the_ajax_script.ajaxurl, jQuery(".form_year").serialize(),function(response_from_display_data_table_1){
            jQuery(".table_disp").html(response_from_display_data_table_1);
        });
}

如您所见,我的 display_table() 取值来自 'form_branch',而 display_table_1() 取值来自 'form_year'。并且它们对应于jQueries中定义的各自的其他函数。

如何使第一个表单的值,即“form_game”传递给其他两个表单,以便其他表单在提交时会将“form_game”的值连同它们各自的值一起发布到它们的目标函数?必须做些什么来实现这一目标?

【问题讨论】:

    标签: jquery ajax post submit multiple-forms


    【解决方案1】:

    你可以使用beforeSendajax事件

    可能是这样的(代码未测试)

    jQuery.post(the_ajax_script.ajaxurl,   jQuery(".form_branch").serialize(),function(response_from_display_data_table){
            jQuery(".table_disp").html(response_from_display_data_table);
        }).beforeSend(display_table_1());
    

    或者,反过来:

    jQuery.post(the_ajax_script.ajaxurl, jQuery(".form_year").serialize(),function(response_from_display_data_table_1){
            jQuery(".table_disp").html(response_from_display_data_table_1);
        }).beforeSend(display_table());
    

    【讨论】:

    • 其实我希望当用户从“form_game”中选择选项时,该表单中的值和他从“form_branch”中选择的值都将发布到display_data_table,即onchange="display_table( );"被触发。
    • 那你可以像我的回答那样做,但反过来!
    • 对不起,你能在这里写代码吗?我只是一个初学者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 2014-04-04
    • 2017-06-28
    • 1970-01-01
    • 2012-09-21
    • 2014-01-21
    相关资源
    最近更新 更多