【问题标题】:Submitting form data to two locations using Javascript and PHP?使用 Javascript 和 PHP 将表单数据提交到两个位置?
【发布时间】:2012-12-25 13:03:37
【问题描述】:

我有一个包含多个文本区域和一个 PayPal“立即购买”提交按钮的订单。我希望 PayPal 按钮能够像往常一样工作,将订单提交给 PayPal,但我也希望使用相同的按钮来收集表单中的数据并通过电子邮件发送出去。不过,为了做到这一点,按钮需要有两个操作:向 PayPal 发送数据,以及将数据发送回我的 php 页面。

这似乎是一个常见问题,目前还没有明确的解决方案,仅使用 PHP。因为我只需要表单中的数据,我想我可以用 Javascript 来获取它。我想我可以在 paypal 按钮上放置一个 onClick 事件,它会调用一个 JavaScript 函数,其中包含发送电子邮件所需的 PHP。

这可能吗?我是不是想多了?

编辑 好的,所以我不想深入研究 PayPal API,因为我一开始就对 PayPal 不满意。我正在考虑另一种解决方案,它还没有奏效,但它可能有潜力。

标准的 PayPal 按钮代码使用输入 type="image" 作为按钮。我在该输入标签周围放置了一个链接元素,并链接到一个 javascript 函数。例如:

<a href="javascript: submitForm()"> <input type="image src= ...> </a>

我有一个这样设置的表单:

<form name="userInfo" action="sameFile.php" method="post">

其中“sameFile.php”只是这一行所在的当前 php 文件的名称。

然后在我拥有的同一代码文件中的其他地方:

<script type="text/javascript"> function submitForm(){ document.forms["userInfo"].submit();}</script>

其中 userInfo 是包含我所有用户输入框的表单。请注意,“userInfo”不是包含 PayPal 按钮的表单,所以这可能是问题所在......

无论如何,这一切似乎都有效,尽管我不知道 PayPal 订单是否通过。我只是被重定向回同一个 php 页面。

接下来我想使用 PHP 来提取应该在 POST 数组中的数据。我输入了一些报告 POST 值的测试回显,但是添加此代码后页面根本不会加载。我究竟做错了什么?我应该把解析表单数据的 PHP 放在一个特定的地方吗?

【问题讨论】:

  • 我会将其全部提交到我的服务器,解析数据,然后生成电子邮件,然后发送 PayPay 请求。因此,表单将有一个操作,然后该单个操作将通过电子邮件发送并执行 paypal 位。
  • 我会像@ernie 说的那样做。但是如果你想用 javascript 来做,我会通过在提交时调用一个 javascript 函数来做到这一点(但你需要硬编码 false 值,以便在函数运行之前不提交表单),然后我会调用 PHP使用表单副本提交文件,然后让贝宝提交工作。 “文档对象”几乎是您的 javascript 函数所需的全部内容。
  • 实际上,如果可以的话,我想用 PHP 来完成。我会尝试@ernie 的建议,但我不确定在标准提交后如何发送 PayPal 信息。我知道数据将在 POST 数组中,但是如何以正确的格式将信息发送到 PayPal?我以前从未使用过 PayPal,所以我对它的工作方式并不是 100% 满意。
  • 自从我使用 paypals api 已经很久了,但是当我这样做时,他们有一个 api,他们可以将 已完成 交易 + 所有详细信息发布到您服务器上的脚本中.然后,您知道他们实际付款,而不是仅仅去贝宝网站而不是完成结帐。 paypal 有很棒的开发者文档 + 一个沙箱。你应该阅读它。

标签: php javascript forms email


【解决方案1】:

您要发送订单完成邮件吗?

如果是这样,请编写代码以在paypal的成功页面中发送邮件(在您的服务器中返回页面) - 这是实际的做法。

【讨论】:

  • 这也是一个好主意,特别是如果目的是完成订单,并且在 paypal 处理完付款之前不应发送电子邮件。我的建议更倾向于跟踪提交的订单,以防您想验证哪些已处理/未处理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
相关资源
最近更新 更多