0

我希望通过 onclick 事件调用 PHP 函数。然后控制器中的 PHP 操作应该开始下载包含所需数据的 json 文件。

我已经知道 ajax 并且我目前正在使用它,但不知何故该功能不会触发。我 100% 确定我做错了什么,但我似乎找不到什么。

到目前为止,ajax 工作得很好,console.log()最后可以在控制台中看到。但是,请求应在我的控制器中触发的功能不会关闭。要么,要么我试图记录错误的东西。感谢您的每一点帮助。

我正在使用 Yii 1.1 和 CButtonColumn。

管理员.php:

'buttons'=>array(
  'export' => array(
          'label'=>'Export',
          'click'=>'function() {
            $.ajax({
              url: "/path/to/admin.php/followed/by/controller/action/actionExport",
              method: "POST",
              success: function(result) {
                console.log("Hello there!");
              }
            });
          }',
          'imageUrl' => Yii::app()->request->baseUrl.'/images/image.png',
        ),

包含操作的 adminController.php。也许我应该提到控制器位于 admin.php 上一级的另一个目录中

public function actionExport(){

    if (isset($_POST)) {
      Yii::log(It was a great success, I think!");
    }

    $helper = new TestHelper();
    $data = $helper->actionIndex();

    header("Content-type: application/json/xml");
    header("Content-Disposition: attachment; filename=report.json");
    header("Pragma: no-cache");
    header("Expires: 0");

    echo json_encode($data);
  }
4

1 回答 1

0

因此,由于一些提示,我能够解决问题并完成它。他的 URL 有问题,必须这样做:

'url'=>'Yii::app()->createUrl(Yii::app()->controller->module->id."/".Yii::app()->controller->id."/export",
                array("id"=>$data["group_id"]))'
于 2021-03-07T07:13:31.387 回答