【问题标题】:Send Form Data Through JQuery AJAX / javascript通过 JQuery AJAX / javascript 发送表单数据
【发布时间】:2014-09-25 09:41:00
【问题描述】:

我有这样的表格;

<form action="out.php" method="post">
    <input type="hidden" name="a" value="a" />
    <input type="hidden" name="b" value="b" />
    <input type="hidden" name="c" value="c" />
    <input type="hidden" name="d" value="d" />
    <input type="hidden" name="e"  maxlength="60" value="e" />
    <input type="hidden" name="f" value="f" />
    <input type="submit" value="Create & Send">
</form>

用户无法看到此表单。他们只看到一个提交按钮,例如“创建标签并发送给客户”。 但他们需要输入客户的电子邮件地址。所以我有一个js代码提交按钮触发它。它会询问电子邮件地址。 JS代码:

$('#dialog_prompt').click(function(){
    $.prompt("What is customer's email?","",
    function(value){
        $.msg("So, you like '"+value+"'?");
    },
    function(){
        $.msg("You clicked cancel!");
    });
});

所以我的问题是; 当用户提交按钮并输入客户的电子邮件并点击确定时,JS 必须将表单和电子邮件地址中的值发送到“out.php”。

那么如何通过 JS 发送表单数据呢?

【问题讨论】:

  • 使用ajax发送Post数据

标签: javascript php ajax forms


【解决方案1】:

HTML:

<form action="out.php" method="post">
<input type="hidden" name="em" value="" class="customeremail" />
<input type="hidden" name="a" value="a" />
<input type="hidden" name="b" value="b" />
<input type="hidden" name="c" value="c" />
<input type="hidden" name="d" value="d" />
<input type="hidden" name="e"  maxlength="60" value="e" />
<input type="hidden" name="f" value="f" />
<input type="submit" value="Create & Send">
</form>

JS:

$('#dialog_prompt').click(function(){
    $.prompt("What is customer's email?","",
    function(value){
        $('form .customeremail').val(value);
        $('form').ajaxSubmit();
    },
    function(){
        $.msg("You clicked cancel!");
    });
});

【讨论】:

  • 当我这样提交时,什么也没有发生。我单击按钮并输入邮件地址,然后等待。但什么也没发生。
  • 顺便说一下,我的页面中有 3 个表单。而且这个表格有“sendemail” id。
【解决方案2】:

您可以使用 AJAX 发送详细信息。

$('#dialog_prompt').click(function(){
                $.prompt("What is customer's email?","",
                function(value){        
                    $.msg("So, you like '"+value+"'?");

                    $.ajax({
                    url: "out.php",   // url to which details are send
                    type: 'POST',
                    data: $('form').serialize(),   // pass form details
                    } ).done (function(data) {      // on success

                  });

                },
                function(){
                    $.msg("You clicked cancel!");
                });
            });

现在您可以在 out.php 页面中使用 $_POST 访问通过 AJAX 传递的值。

注意:serialize() 方法通过序列化表单值来创建一个 URL 编码的文本字符串。

【讨论】:

  • 您好,请问如何获取邮箱地址? out.php 等待 $_POST['custemail']
  • 顺便说一下,我的页面中有 3 个表单。而且这个表格有“sendemail” id。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 2016-04-20
相关资源
最近更新 更多