PHP Post值未定义

时间:2015-11-28 19:09:02

标签: php post

当我试图从我的php类中获取POST值时,它总是返回“Undefined variable”

但它怎么可以不定义我真的没有得到它!!!

这是我的 POST 数据

enter image description here

这是我的响应数据

enter image description here

这是我的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>

有人知道我在哪里弄错了! 请真的需要一些建议

2 个答案:

答案 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值的更好方法