【问题标题】:CakePHP 3.x Pass value from Javascript to PHP by ajax, $_POST is emptyCakePHP 3.x 通过 ajax 将值从 Javascript 传递给 PHP,$_POST 为空
【发布时间】:2017-12-03 07:44:35
【问题描述】:

Ajax 可以成功提醒 post 数据 ({"booking":{"testdata":"testdata"}})。问题是php代码无法获取$_POST

js和php在同一个页面:localhost/booking/index.ctp

这是我的代码:

<script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.min.js"></script>
    <script>
                    $.ajax({

                            url: "<?php echo $this->Url->build([
                            "controller" => "booking",
                            "action" => "index",
                            "_ext" => "ctp",
                            true
                            ]);?>", //This is the current doc


                            type: "POST",
                            dataType:'json',
                            data: {'testdata': 'testdata'} ,
                            success: function(data){
                              //  console.log(data);
                                alert(JSON.stringify(data));
                            }
                        });

                    </script>

                    <?php
                    if (isset($_POST['testdata'])){
                        $getv = $_POST['testdata'];
                        echo json_encode($getv);
                    }
                    else {
                        echo "none";
                    }
                    ?>

【问题讨论】:

  • 你到底想用这段代码实现什么?

标签: javascript php ajax cakephp


【解决方案1】:

这应该在控制器中

<?php
if (isset($_POST['testdata'])){
    $getv = $_POST['testdata'];
    echo json_encode($getv);
}
else {
    echo "none";
}
?>

你可以在你的控制器中使用:

public function initialize()
{
    $this->loadComponent('RequestHandler');
}
public function yourFunction()
{
    $yourvar = $this->request->getData('testdata');
    $this->set([
        'success' => true,
        'data' => $yourvar,
        '_serialize' => ['success', 'data']
    ]);
}

在您的 ajax 中,您可以使用相同的代码进行测试。

【讨论】:

  • 你的意思是应该在控制器中,因为从控制器回显数据是不行的(就像直接访问超全局一样);)
猜你喜欢
  • 2020-01-25
  • 2013-03-05
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 2016-08-09
  • 1970-01-01
相关资源
最近更新 更多