首页 > 解决方案 > JS POST AJAX 的一种通用功能

问题描述

$.post在 Javascript 中使用函数将变量发送到 php 文件,并从 php 获取输出并将其显示在页面上。

现在我得到> 30个重复相似的代码块为每一页,这似乎不是那么有效:

  $(document).on('click', '#forgotpass', function() {
    var forgotpwd_email = $('#emailreg').val();
    ....
    $.post('include/forgotpwd_link.php', {
        forgotpwd_email: forgotpwd_email,
        ....
    }, function(a4) {
        $(".loginright").html(a4);
    });
  });

在哪里:

#forgotpass- 激活脚本的按钮 id

#emailreg- 具有要发送到 php 文件的值的字段的 id

.loginright- div 类,我在其中放置响应

每次按钮的 id、字段的 id、字段和变量的数量以及 php 文件名都在变化。有什么方法可以制作一个改变字段数量的函数,可以激活,如下所示?

post_function('#button_id', '{variable1, variable2}', 'div with response from file_name.php','file_name.php');

未定义要发送的变量数量的主要挑战..它可以是一到十五。

标签: javascriptphpjqueryajax

解决方案


感谢 El_Vanja 的提示。

最后我创建了以下功能:

function ajax_post(variables, response_selector, phpfile) {
        $.each(variables, function(key) {
          variables[key] = $('#'+key).val();
        });
        $.post(phpfile, variables, function(response) {
            $(response_selector).html(response);
        });

}

为了调用它,我将输入 ID(即 #var1 和 #var2)添加到变量对象:

var variables = {var1 : '', var2 : ''};

并调用函数:

ajax_post(variables, '.wrapper', 'test.php');

在哪里

variables - 带有输入 ID 的对象(也用作变量名)

.wrapper - 我想放置来自test.php文件的响应的 div


推荐阅读