Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从PHP访问表单数据($\u POST不工作??)_Javascript_Php_Jquery_Post - Fatal编程技术网

Javascript 如何从PHP访问表单数据($\u POST不工作??)

Javascript 如何从PHP访问表单数据($\u POST不工作??),javascript,php,jquery,post,Javascript,Php,Jquery,Post,我使用$.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') }) .fa

我使用$.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);
    }
}
我在浏览器的headers>FormData中看到了我的数据,但我似乎无法访问Php中的任何内容

我已经尝试了上面的
数组\u key\u exists
,也尝试了
$\u POST[sData]
,但没有乐趣

我是个新手,所以请友善点

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);
    }
}


感谢阿尔瓦罗为我指明了正确的方向
$method
在前面的文件中被声明为“=”到$\u GET中的“m”。添加一个已排序的
(如果
)。我猜是新手犯的错误。。。。无论如何谢谢你

$method = array_key_exists('m', $_GET) ? $_GET['m'] : NULL;
if ($method == NULL) {$method = array_key_exists('m', $_POST) ? $_POST['m'] : NULL;}

您发送的数据是什么样子的?粘贴一个示例。
var\u dump($\u POST)
并查看您的数据。我没有看到任何明显的错误,但无法说出代码失败的地方,因为它依赖于许多未知值的变量。数据中有什么?执行什么回调?你有什么状态码?
$\u POST
包含哪些内容?什么是
$method
?我的观点是正确的:如果
$\u POST['sData']
是一个字符串,尝试循环它是不可能的。您是否已将PHP配置为显示错误消息?