【问题标题】:Yii2 POST method does not display the viewYii2 POST 方法不显示视图
【发布时间】:2017-06-27 21:01:26
【问题描述】:

我正在尝试通过 post 方法调用视图,但没有结果。通过 ajax 或 actionPOST 发送 POST 请求不会执行视图。 我需要一个通过 post 方法运行我的视图的示例。

Code below

<script>

     function sendPost() {
        $.ajax({
           type: "post",
            url: "<?php echo yii::$app->geturlmanager()->createurl('site/upload'); ?>",
            data: {name:'Keth',_csrf : '<?=Yii::$app->request->getCsrfToken()?>'},
            datatype: "json",
            success: function (data) {
                console.log(data);
            },
            error: function (data) {
                console.log(data);
            }
        });
        return true;
    }

</script>


controller  site

public actionPost()
{
    $name = 'Bart';
    Yii::$app->runAction(['site/upload','name' => $name]);  

}

public function actionUpload()
{
        if (Yii::$app->request->isAjax)  {
            $name = Yii::$app->request->post('name');
        }else
        {

            $name = Yii::$app->request->post('name');
            return \yii\helpers\Json::encode($flag);
        }

    $model = new SiteUploadForm();

     return $this->render('site-upload', [
                'model' => $model,
                'name' => $name ]); 

}

view site

echo $name

【问题讨论】:

  • 当你执行sendPost()方法时,你会得到什么响应?
  • 好的 ajax 在检查器 chrome 中。代码中没有结果,也没有错误。

标签: javascript ajax post yii2


【解决方案1】:

你的函数声明有误,改一下:

public actionPost()
{
    $name = 'Bart';
    Yii::$app->runAction(['site/upload','name' => $name]);  

}

到:

public function actionPost()
{
    $name = 'Bart';
    Yii::$app->runAction(['site/upload','name' => $name]);  

}

IDE 应将此标记为无效。

【讨论】:

  • 还没有结果。
  • 那么你在 ajax 请求中得到什么响应? (Chrome 开发者工具 -> 网络)
  • 是在 ajax 请求中或通过 yii2 模型
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2015-04-22
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
相关资源
最近更新 更多