【问题标题】:Unserialize data from a jquery ajax from and send email反序列化来自 jquery ajax 的数据并发送电子邮件
【发布时间】:2018-04-18 08:20:22
【问题描述】:

我在 php 模板中有一个很长的表单,所有数据都通过 jquery ajax 以serialize 模式发送到 php 页面以发送电子邮件。

我有这个问题:我如何unserialize php页面中的数据,并通过电子邮件发送?

php 模板是用不同的数据完成的。所以我不能用这种方式对每个字段进行urldecode $nome = urldecode($_POST['nome']);

我必须想办法让所有数据到达 php 页面并通过电子邮件发送。我读到了parse_str 但我不知道它是否可以工作以及如何使用它。

目前这是我的 ajax 代码:

var datiform = $("#FormWorkspace").serialize();    

$.ajax({

        type: "POST",
        url: ".../form-cf/engine.php",
          data: datiform,
          dataType: "html",
        success: function(datiform)
            {
          alert("success" + datiform);
            },
        error: function()
            {
          alert("no success " + datiform);
            }
        });

【问题讨论】:

  • 你会像这样使用 parse_str:parse_str($_POST['data'], $myPostVar) 然后你可以像 $_POST - $myPostVar['name'] 一样使用$myPostVar
  • 谢谢@ThisGuyHasTwoThumbs 这样我必须为每个字段写$myPostVar['name']?我可以循环自动生成数据吗?
  • 首先你做,@ThisGuyHasTwoThumbs 说的。正如我链接的答案一样。然后你做foreach ($myPostVar as $item) { /*Do what you want in your email.*/}php.net/manual/en/control-structures.foreach.php.

标签: javascript php jquery ajax forms


【解决方案1】:

在 jquery 中序列化意味着实际创建一个字符串 var1=1&var2=234。您可以在 PHP 中使用 GET['var1'] 或 POST['var2'] 简单地访问数据。

【讨论】:

    猜你喜欢
    • 2013-12-02
    • 1970-01-01
    • 2014-11-15
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多