如何在不渲染另一个页面的情况下对按钮单击执行 运行 操作 Yii2?

How to run action on button click without rendering another page Yii2?

现在我的视图中有一个按钮(实际上它是一个 table 样式为按钮的单元格)。当用户单击此按钮时,我希望控制器对 运行 执行操作。然而,这个动作应该在同一个视图上完成,而不是重定向到另一个页面。

所以,现在的逻辑是这样的: 1) actionIndex 工作并呈现索引视图 2) 在索引视图上有一个按钮,点击它我们 运行 actionSend() 3) actionSend() 有效(发送电子邮件)但我们不会从索引视图重定向到其他地方(只显示成功消息)

查看:

  <table style="width:100%; height:100%; color:white">
     <tbody>
       <tr>
         <td><?= Html::a('Send to e-mail' ['result/sendPdf'])?>                                      
         </td>
       </tr>
     </tbody>
  </table>  

控制器:

public function sendPdf(){
  $mailer = Yii::$app->mailer;
  $content  = Yii::$app->runAction('pdf/email');
  $message = $mailer->compose()
     ->setTo([$profileData->email])
     ->setFrom(Yii::$app->params['adminEmail'])
     ->setSubject("Your pdf file is ready")
     ->attach($content, ['fileName' => 'Document.pdf', 'contentType' => 'application/pdf'])
     ->send(); 

}   
if (Yii::$app->request->isAjax) {
    $mailer = Yii::$app->mailer;
    $content  = Yii::$app->runAction('pdf/email');
    $message = $mailer->compose()
    ->setTo([$profileData->email])
    ->setFrom(Yii::$app->params['adminEmail'])
    ->setSubject("Your pdf file is ready")
    ->attach($content, ['fileName' => 'Document.pdf', 'contentType' =>        'application/pdf'])
    ->send(); 
    }

AJAX代码

$('#button').click(function(e){
$.ajax({
  type: 'GET',
  url: your_url,
  success: function(result) {
      //code
  },
  error: function(result) {
     alert('error');
  }});});});