【发布时间】:2017-12-12 22:22:05
【问题描述】:
我正在尝试使用 Json 和 AJAX 发送带有数据数组的 php 表单邮件程序,但由于某种原因,发送的邮件没有数据... (我测试了 jason 字符串并对其进行了验证以确保它包含数据)
这是我的代码:
json:
function submitFields() {
form_elements = [];
$('.dataField').each(function () {
frm_name = $(this).attr('name');
frm_qty = $(this).val();
frm_price = $(this).data('price');
current_frm_obj = {name:frm_name, qty:frm_qty, price:frm_price};
form_elements.push(current_frm_obj);
});
$.ajax({
type: "POST",
url: "mailer.php",
data: { result:JSON.stringify(form_elements) },
success : function(response) {
console.log(form_elements);
alert(response);
}
});
}
PHP 邮件程序:
$data = $_POST["result"];
$decoded = json_decode($data);
$errors = '';
$myemail = 'office@studiodeshe.com';
$to = $myemail;
$email_subject = "Form info";
$email_body =
$decoded = json_decode($data);
foreach ($decoded as $curr_element) {
$fieldName = $curr_element->name;
$fieldQty = $curr_element->qty;
$fieldPrice = $curr_element->price;
if ( $fieldQty != 0 ) {
$fieldName .': <br />' . $fieldQty;
if ($fieldPrice != 0) {
'Qty: ' . $fieldQty . '<br />';
'Price: ' . $fieldPrice . '<br />';
'Total: ' . ($fieldPrice*$fieldQty) . '<br /><br />';
}
}
}
$headers = "From: studiodeshe <office@studiodeshe.com> \n";
$headers .= 'Content-type: text/html; charset=utf-8';
mail($to,$email_subject,$email_body,$headers);
header('Location: ty.html');
我猜测我尝试解码邮件中数据的方式存在一些问题,但找不到解决方案...
【问题讨论】: