如何在 PHP 中检索 Posted JSON、构造字符串和电子邮件

Posted

技术标签:

【中文标题】如何在 PHP 中检索 Posted JSON、构造字符串和电子邮件【英文标题】:How to retrieve Posted JSON , construct string, and email in PHP 【发布时间】:2020-02-14 21:41:31 【问题描述】:

应用概览

这是一个简单的“get-a-quote”页面,用户在其中输入零件编号、所需的数量,以及任何可选的注释


先前的研究 对于与我类似的问题,我确保彻底尝试在 *** 上找到的解决方案。我尝试了很多,包括以下内容(我发布这个是为了向你保证,在发布这个问题之前我已经尽力了):

    php: loop through json array How to loop through json data php loop through JSON string in php

(还有更多,我试过了)- 话虽这么说......


问题

我无法将表单值发布到我的 PHP 流程页面。我正在使用 JQuery Ajax 发布。具体来说,我不知道如何访问“部分”,它可能包含也可能不包含多个。

期望的结果

检索所有表单数据,并使用 PHP 发送电子邮件。

我不需要电子邮件部分的帮助,只需要表单值。

PHP 处理程序


// Receive JSON
$json = file_get_contents('php://input');

// Converts it into a PHP object
$data = json_decode($json, true);

foreach($data as $key => $value) 

    echo $key.' value of the key is:'.$value;




已发布的值

来自 PHP 页面的响应

name value of the key is:Johnemail value of the key is:john@gmail.comphone value of the key is:808-333-3333<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Array to string conversion in C:\wamp64\www\123NEW\process.php on line <i>11</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0006</td><td bgcolor='#eeeeec' align='right'>406152</td><td bgcolor='#eeeeec'>main(  )</td><td title='C:\wamp64\www\123NEW\process.php' bgcolor='#eeeeec'>...\process.php<b>:</b>0</td></tr>
</table></font>
parts value of the key is:Array

应用预览

理想情况下,我希望得到一个可以通过电子邮件发送的格式化字符串:

Name: John
Email: john@gmail.com
Phone: 800-555-1212
Parts: 1.  PartNumber:p1 -- Qty: 1 -- Notes: No notes
       2.  PartNumber:p2 -- Qty: 3 -- N/A

感谢收看。任何帮助将不胜感激。

注意: 我正在使用KnockoutJS,所以我可以利用他们的 2 路数据绑定。不确定这是否会影响对这个问题的回答。

【问题讨论】:

【参考方案1】:

真的没什么。您可能希望在代码中执行此操作,只要您有对视图模型的引用,就可以根据需要读取属性来生成字符串。

这可以在一个计算的 observable 中,或者只是一个常规的单独函数来生成字符串。

_emailContent() 
    const name,email,phone,parts = this.customer();
    return `Name: $name()
Email: $email()
Phone: $phone()
Parts:
  $outputParts(parts)
`;
    function outputParts(parts) 
        return ko.utils.arrayMap(parts(), (partNumber,qty,notes, i) =>
            `$i+1.\tPartNumber: $partNumber() -- Qty: $qty() -- Notes: $notes()`
        ).join('\n  ');
    

我还制作了一个小提琴来演示它:https://jsfiddle.net/3j1arh04/1/

【讨论】:

嘿,杰夫,非常感谢,伙计!这不仅有助于解决这个紧迫的问题,而且您的代码还为我提供了一些与我的视图模型交互的新方法。像您在示例中那样使用纯类似乎是一种干净、现代的方法。我肯定会用它作为模型来研究我未来的视图模型。再次感谢,很棒的解决方案! 太棒了!很高兴我能帮上忙。

以上是关于如何在 PHP 中检索 Posted JSON、构造字符串和电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

在php页面中检索json格式的ajax请求

一种基于结构信息检索文档的思路(html,pdf,html,xml,doc,ppt,这样的异构文档应该如何检索呢?)

一种基于结构信息检索文档的思路(html,pdf,html,xml,doc,ppt,这样的异构文档应该如何检索呢?)

在 PHP 中使用“POST”通过 C# 中的 JSON 检索数据库信息

从函数中检索 JSON 和 PHP 值

如何循环访问和访问多维和关联数组中的各种元素? PHP,JSON 或 XML