【问题标题】:yii - action render a view after ajax request but the view is not show in browseryii - ajax 请求后操作渲染视图,但视图未显示在浏览器中
【发布时间】:2020-09-06 18:42:40
【问题描述】:

我的代码中出现此问题的一部分得到以下逻辑:

view1 通过链接获取一些信息。当用户单击链接 X 时,会向 XAMPP Web 服务器上的控制器发送一个发布请求,以从链接 X 打开 view2。此外,所有这些都附加在 yii 框架中,而我是新来的。

HTML 视图1:

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

Js:

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) 工作正常。但是我不知道为什么view2的渲染在收到ajax请求后没有显示在浏览器中。

【问题讨论】:

    标签: php html ajax yii


    【解决方案1】:

    当您发送 ajax 请求时,您总是需要向 Web 浏览器返回一些内容。在这种情况下,您需要在服务器端返回一个渲染的 html 给客户端,并将旧的 html 替换为最新的 js。

    【讨论】:

    • 您的意思是在 ajax 成功时重新加载页面吗?当你说“用 js 替换旧的 html 为最新的”时,我不明白。
    猜你喜欢
    • 1970-01-01
    • 2017-04-22
    • 2014-09-18
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多