【问题标题】:Pass data to a FORM and auto submit it将数据传递给 FORM 并自动提交
【发布时间】:2011-06-28 00:13:20
【问题描述】:

我想要的是一个 JQuery/JavaScript 代码,它会自动将一些数据从 facebook 传递到表单(基本上不需要显示表单)。所以第一部分已经准备好了(从 facebook 中提取数据的部分)。

      window.fbAsyncInit = function() {
  FB.init({appId: 'xxxxxxxxxxxxxxx', status: true, cookie: true, xfbml: true});
      };
    FB.Event.subscribe('auth.login', function(response) {
         if (response.session) {
         FB.api({
         method: "fql.query",
         query: "SELECT name,email FROM user WHERE uid = " + response.session.uid
            }

现在我需要将姓名和电子邮件插入到带有 name="name" 和 name="email" 的输入中并自动提交表单。

提前致谢!

编辑:这里是表格:

<form method="post" class="af-form-wrapper" action="http://www.aweber.com/scripts/addlead.pl"  >

<input type="hidden" name="meta_web_form_id" value="XXXXXXXX" />
<input type="hidden" name="listname" value="XXXXXX" />
<input type="hidden" name="meta_adtracking" value="XXXX" />
<input type="hidden" name="meta_message" value="1" />

<input id="awf_field-22176678" type="text" name="name" class="text" value=""  tabindex="500" />

<input class="text" id="awf_field-22176679" type="text" name="email" value="" tabindex="501"  />

<input name="submit" class="submit" type="submit" value="Submit" tabindex="502" />
<div class="af-clear">

</form>

编辑 2:我需要做这样的事情,只是用 jQuery 简化:

        <?php
        $formcode = '<form method="post" action="http://www.aweber.com/scripts/addlead.pl"  >

<input type="hidden" name="meta_web_form_id" value="864136470" />
<input type="hidden" name="listname" value="fbu-ppv-mmoney1" />
<input type="hidden" name="meta_adtracking" value="FB_Ultralizer_PPV" />
<input type="hidden" name="meta_message" value="1" />

<input id="awf_field-22176678" type="text" name="name" class="text" value=""  tabindex="500" />

<input class="text" id="awf_field-22176679" type="text" name="email" value="" tabindex="501"  />

<input name="submit" class="submit" type="submit" value="Submit" tabindex="502" />

</form>
'; ?>
<script type="text/javascript">
                                                customar_formcode="$formcode";
                                                customar_formcode=customar_formcode.replace("{email}", user.email);
                                                customar_formcode=customar_formcode.replace("{name}", user.name);
                                                document.getElementById(\'form\').submit();
</script>

【问题讨论】:

  • 您是在尝试填写 DOM 中已经存在的表单然后提交,还是尝试在不向用户实际呈现任何表单的情况下对某个 url 进行 POST?跨度>
  • 好吧,也许将 DOM 作为 PHP 变量,然后以某种方式解析它?我真的不想制作隐藏的 DIV 之类的东西。
  • 这取决于您需要做什么,下面的答案是发送帖子的正确方法。如果您想实际将用户重定向到该页面,并显示其响应等,例如模拟用户填写表单并点击“提交”的实际动作,最简单的方法基本上是在 DOM 中创建一个表单,填写并提交。您可以动态构建它,但只有隐藏表单并没有什么问题。

标签: javascript jquery facebook


【解决方案1】:

使用 Jquery 的 POST 发送数据而不需要表单的标记并使用自动提交:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

编辑: 如果您已经在 DOM 中设置了表单,则只需使用 JavaScript 填写并使用 JavaScript 提交即可

要更改输入值,请使用 Jquery,如下所示:

$('input[name$="name"]').val('value');

一旦所有输入设置为您想要的方式,您就可以使用this提交表单:

如果您的表单上有 ID 表单,那么您可以使用类似的代码

$('#form').submit();

希望对你有帮助

【讨论】:

  • 谢谢!我刚刚添加了使用表单编辑的帖子,我有点困惑如何使用 jQuery 的 POST 发送所有需要的信息,您能否提供一个简短的示例与我提供的表单?
  • 表单是对用户隐藏还是需要用户输入?
  • 感谢您的编辑好友,我会尽快尝试。而且表单是隐藏的,我什至更愿意将其设置为 PHP 变量,这样它就不会显示在源代码上,这可能吗?
  • 如果它是一个 PHP 变量,它必须在服务器端并在表单发布到服务器时使用,所以在客户端的 $('#form').submit() 之后一边跑。所以它根本不需要在 HTML 标记中。
  • 好吧,我已经尝试过了,似乎对我不起作用,“所以在客户端运行 $('#form').submit() 之后是什么意思“?我在哪里放置变量(在 JS 之前或之后)?如何使用 JS 访问它?
【解决方案2】:

使用 jquery,您可以一次传递所有表单数据,例如: var data = $(#formID).serialize();

【讨论】:

    猜你喜欢
    • 2014-08-14
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多