我正在使用$ .post方法将二维数组从js文件传递到ajax.php脚本。我的.js函数看起来像这样
function doSendEmail (aData) {
var sData = JSON.stringify(aData)
$.post('dd-ajax.php', { m: 'sendEmail', sData: sData },
function () {})
.done(function () { console.log('Done') })
.fail(function (err) { showMessage(`unexpected error: ${err.responseText}`) })
.always(function () { spinner(false) })
}
然后我的Ajax.php文件如下:
if ($method == "sendEmail") {
$sData = array_key_exists('sData', $_POST) ? $_POST['sData'] : NULL;
foreach($sData as $line) {
$to = $line[7];
$name = $line[0];
$subject = 'Email Subject';
$message = `Dear $name, Blah blah blah`;
mail($to, $subject, $message);
}
}
我在浏览器中的标题>表单数据中看到了我的数据,但是我似乎无法访问Php中的任何内容?
我已经尝试了以上array_key_exists
,也尝试了$_POST[sData]
,但没有任何乐趣。
我是新手,所以请保持友善
答案 0 :(得分:0)
感谢Alvaro向我指出正确的方向。 $method
在$ _GET中在文件中被声明为'm'的=。向其添加if
可以对其进行排序。我猜是菜鸟错误。。。还是谢谢你
$method = array_key_exists('m', $_GET) ? $_GET['m'] : NULL;
if ($method == NULL) {$method = array_key_exists('m', $_POST) ? $_POST['m'] : NULL;}
答案 1 :(得分:-2)
data = { 'm': 'sendEmail', 'sData': sData };
$.ajax({
url: 'dd-ajax.php',
type: 'POST',
data: data,
success: function (data) {
console.log('Done');
},
error: function() {
console.log("error");
}
});
在dd-ajax.php
$method = $_POST['m'];
if ($method == "sendEmail") {
$sData = array_key_exists('sData', $_POST) ? $_POST['sData'] : NULL;
foreach($sData as $line) {
$to = $line[7];
$name = $line[0];
$subject = 'Email Subject';
$message = 'Dear $name, Blah blah blah';
mail($to, $subject, $message);
}
}