虽然在同一函数中的var_dump显示数据,但在PHP函数中不能工作

问题描述:

我很困惑。我有一个JavaScript函数发布到PHP函数。 PHP在mPicker上说“undefined index”。然而,如果我在同一个函数mPicker内调用var_dump显然是可见的。虽然在同一函数中的var_dump显示数据,但在PHP函数中不能工作

console.log

我也跑在JavaScript警告客户端,以确保表单数据是序列化,它也表明,mPicke [R确实有一个值。然而,PHP中的这一行返回错误:

$es=$_POST["mPicker"]; 

这只是你所有的缘故。代码的较长版本测试SQL注入。

而且在Xdebug的错误:

php error in xdebug

的JavaScript代码:

$.post("./php/adates.php", { atype: apttype, data: $("#apptForm").serialize() }) 
.done(function(data) { 
    alert(data); 
}); 

多的PHP函数代码:

if (isset($_POST["atype"]) && !empty($_POST["atype"])) { 
    $typ = test_input($_POST['atype'], $con); 
} else { 
    echo "error ln 6: typ is undefined."; 
} 

$es=$_POST["mPicker"]; 
echo $es; 
exit; 

test_input的功能是我提到SQL注入测试和ju st进行测试,在mPicker的帖子上暂时省略。如您所见,行$_POST["atype"]转义错误,并在PHP函数中完美解决。我知道我很累,一定会错过一些愚蠢的东西。帮助,任何人!

+0

第一次加载页面时,$ _POST ['mpicker']将不会被设置 - 所以你会得到一个错误或警告。以与测试atype相同的方式测试mPicker。 – user2182349

+4

在我看来,你只发布两个字段,一个叫'atype',另一个叫'data'。 – nnnnnn

+0

'!empty'就足够了,'isset'就不需要了。 – chris85

尝试使用jQuery“Ajax”的,而不是“后”

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    dataType: "html", 
    success: function(html){ 
    console.log(html) 
    } 

}); 

,并设置数据类型为“HTML”,然后在PHP中使用“回声”或“var_dunmp”,你可以看到在乌尔数据控制台

+0

对不起,“var_dump”不是“var_dunmp” –

+0

我曾试过ajax,结果相同。但我发现问题是我发送两个单独的变量(一个是序列化表单数据)的方式。所以我在ajax调用之前添加了这一行: var data =“atype =”+ apttype +“&”+ $(“#apptForm”)。serialize();' 现在,谢谢。 – jazcam

+0

嗯,我搞砸了迷你格式。抱歉。 – jazcam