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

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


所以,现在的逻辑是这样的: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(); 


}   


慕的地6264312
浏览 162回答 1
1回答

大话西游666

if (Yii::$app->request->isAjax) {&nbsp; &nbsp; $mailer = Yii::$app->mailer;&nbsp; &nbsp; $content&nbsp; = Yii::$app->runAction('pdf/email');&nbsp; &nbsp; $message = $mailer->compose()&nbsp; &nbsp; ->setTo([$profileData->email])&nbsp; &nbsp; ->setFrom(Yii::$app->params['adminEmail'])&nbsp; &nbsp; ->setSubject("Your pdf file is ready")&nbsp; &nbsp; ->attach($content, ['fileName' => 'Document.pdf', 'contentType' =>&nbsp; &nbsp; &nbsp; &nbsp; 'application/pdf'])&nbsp; &nbsp; ->send();&nbsp;&nbsp; &nbsp; }AJAX 代码$('#button').click(function(e){$.ajax({&nbsp; type: 'GET',&nbsp; url: your_url,&nbsp; success: function(result) {&nbsp; &nbsp; &nbsp; //code&nbsp; },&nbsp; error: function(result) {&nbsp; &nbsp; &nbsp;alert('error');&nbsp; }});});});
打开App,查看更多内容
随时随地看视频慕课网APP