yii - action在 AJAX 请求后呈现一个视图,但该视图没有显示在浏览器中

j0pj023g  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(119)

我代码中出现此问题的部分代码具有以下逻辑:
当用户点击链接X时,一个post请求被发送到XAMPP Web服务器上的一个控制器,以打开来自链接X的view2。此外,所有这些都是在yii框架中添加的,我是这个领域的新手。
HTML视图1:

<a id="article-title1" type="button" onclick="myFunction()">

詹:

function myFunction()
{
  alert('allo my function');
      dataString = "hallo";
      $.ajax({
          type:"POST",
          url:"http://localhost/basic/web/example/hello",
          data:{'dataString':dataString},
          success:function (data) {
             console.log("send success");
          }
      });
}

控制器:

public function actionHello() {

        $nom = "david";
        $prenom = "pascal";

        return $this->render('information',[
            'name' => $nom,
            'prenom' => $prenom
        ]);

    }

php视图2:

<?php
/* @var $this yii\web\View */
use yii\helpers\Html;

$this->title = 'information';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class = "site-information">
    <h1><?= Html::encode($this->title) ?></h1>
    <p>
        This is the information page
    </p>
    <p>
        <b>name:</b><?= $name ?>
    </p>
    <p>
        <b>firstname:</b><?= $firstname ?>
    </p>
    <code><?= __FILE__ ?></code>
</div>

此外,浏览器中的 AJAX url(http://localhost/basic/web/example/hello)工作正常。但我不知道为什么在收到ajax请求后,浏览器中不显示view2的渲染。

ssgvzors

ssgvzors1#

当你发送 AJAX 请求的时候,你总是需要返回一些东西到web浏览器,在这种情况下,你需要返回一个在服务器端呈现的html到客户端,并且用js替换旧的html。

相关问题