当我试图从我的php类中获取POST值时,它总是返回“Undefined variable”
但它怎么可以不定义我真的没有得到它!!!
这是我的 POST 数据
这是我的响应数据
这是我的PHP代码 -
class sendMailController extends Controller {
protected function init() {
$this->saveDataAction();
}
public function saveDataAction() {
if($_SERVER["REQUEST_METHOD"]=='POST'){
$_POST['name'] = $name;
$_POST['email'] = $email;
$_POST['message'] = $msg;
print_r($name);
}
}
}
这是我的剧本---
<script>
$(document).ready(function () {
$("#myForm").on('submit', function (e) {
var data = {};
data['name'] = $("#name").val();
data['email'] = $("#email").val();
data['message'] = $("#message").val();
$.ajax({
url: '/mvc/sendmail',
type: 'post',
data: data,
success: function (returnedData) {
}
});
return false;
});
});
</script>
有人知道我在哪里弄错了! 请真的需要一些建议
答案 0 :(得分:4)
您正在进行反向分配,这是正确的
class sendMailController extends Controller {
protected function init() {
$this->saveDataAction();
}
public function saveDataAction() {
if($_SERVER["REQUEST_METHOD"]=='POST'){
$name = $_POST['name'] ;
$email = $_POST['email'] ;
$msg = $_POST['message'] ;
print_r($name);
}
}
}
这是错误的:$_POST['name'] = $name
。您将未定义变量 $name
的值分配给帖子元素$_POST['name']
。 在所有编程语言中,分配始终是正确的值到左变量。您需要将其反转为:$name = $_POST['name']
;
答案 1 :(得分:2)
我相信不是使用“$ _ POST”尝试使用这样的方式---
class sendMailController extends Controller {
protected function init() {
$this->saveDataAction();
}
public function saveDataAction() {
$request = $this->getRequest();
if ($request->getMethod() == 'POST') {
$name = $request->request->get('name');
$email = $request->request->get('email');
$message = $request->request->get('message');
}
}
}
我相信这是获取POST值的更好方法