通过javascript通过多个php文件发布数据

时间:2016-02-04 23:54:47

标签: javascript php jquery ajax

我有3个php文件:request.phpaction.phpmail.php

request.php生成页面,根据ajax发送的POST数据填充不同的数据。它以一个表单开头,具有多个字段。点击submit按钮后,ajax会通过action.php将表单数据发送到POST。然后action.php处理数据,将其存储在数据库中,并生成一个干净地布置数据的html divaction.php然后使用html2canvasjsPDF将html div转换为pdf,然后通过jquery mail.php传递给POST通过phpmailer发送电子邮件。然后action.php生成一条成功消息,发送给request.php并显示。

然而,将{pdf}发送到action.php的{​​{1}}内的javascript始终无法运行。我已经尝试了多种方法来实现它,但我似乎无法找到另一种方法来传递所需的所有数据,因为数据需要传递两次:首先作为原始数据的数组,然后作为由mail.phphtml2canvas生成的pdf。

如果我在jsPDF内放置iframe隐藏的mail.php,它会正常运行并发送电子邮件,但它将是一个空的pdf,但未填充来自{的任何数据{1}}(显然)。

我可以想到一些可能的解决方案,但我无法弄清楚如何实现它们:

1)似乎问题是javascript不喜欢运行嵌套,但也许有一种方法可以强制action.php内的javascript代码运行,以便生成pdf并发送给{{ 1}}。

2)也许有一种方法可以只使用一个我没有看到的数据传递来完成所有操作。

3)也许在request.php内有一种方法可以将数据数组传递给action.php mail.php,这将格式化html div并生成pdf,然后将其发送出去到action.php,但我认为即使我能完成这项工作,我也会遇到iframe无法运行并将pdf发送到process.php的javascript问题。

2 个答案:

答案 0 :(得分:1)

您对JavaScript和PHP如何协同工作有一个相当正常的(开始)误解。 PHP在您的服务器上运行。 JavaScript在您用户的浏览器上运行。根据您的上述内容,您要做的是:

  1. 通过request.php
  2. 加载初始页面
  3. 使用action.php处理数据请求,并将格式化表格发送给JS
  4. 让JS将该表发送给mail.php
  5. 你应该做什么:

    1. 通过request.php
    2. 加载初始页面
    3. 使用action.php处理数据请求
      • action.php致电mail.php,并将表格
      • action.php将表格发送回JS
    4. mail.php电子邮件发送出去
    5. 你问为什么JavaScript永远不会被运行以将数据发送到第三个脚本,那是因为你可能永远不会调用它。更重要的是,如上所示,您不需要它:只需action.php致电mail.php

答案 1 :(得分:0)

也许不是我想要的答案,但是因为我知道我不想像马修建议的那样使用php pdf创作,所以最终为我工作了。

由于request.php的javascript与action.php配合使用,我最终将action.php的html表格发送回request.php,然后request.php }致电mail.php