使用zend在jquery移动框架中下载CSV文件

时间:2012-06-14 09:17:17

标签: php zend-framework jquery-mobile

我正在使用zend框架使用jquery移动框架进行项目。我有以csv格式下载报告的页面。我可以从桌面版下载它。但由于jquery移动结果undefinedblank page,移动版中的同一页面在ajax中运行。

例如,当我点击下载按钮时,我会调用此http://www.test.com/report/downloadtransaction。这在reportcontroller中调用downloadtransactionAction,然后最终给出csv文件。 呼叫正在移动版本中发生,但无法看到下载文件窗口。

以下是代码

 public function downloadtransactionAction(){
                    $preview_result = getmySessionData('preview_result')->preview_key;
                    //print_obj($preview_result);        
                    $myFile = "TRANSACTION_" . time() . ".csv";
                    header("Content-Disposition: attachment; filename=\"$myFile\"");
                    header("Content-Type: application/vnd.ms-excel; charset=UTF-16LE");
                    $out = fopen("php://output", 'w');
                    //$csvData = array('Warehouse Id', 'Name','Item No','Minimun Stock','Current Stock');
                    $csvData = array('No','DATE','USER', 'TRADE TYPE','AMOUNT');
                    $o = fputcsv($out, $csvData, ',', '"');
                    $count = 1;;
                    foreach($preview_result as $key => $value)
                    {

                        $csvData = array();
                        $csvData = array($count,date('Y/m/d',strtotime($value['date'])),$value['current_admin_name'],($value['trade_type'])?'WithDraw' : 'Deposit',$value['amount']);
                        $o = fputcsv($out, $csvData, ',', '"');
                        $count++;
                    }
                    fclose($fh);
                    // DOWNLOAD CSV
                    echo $out;
                    die;
    }

我需要在移动版中下载csv,就像桌面版一样 我做错了什么?

1 个答案:

答案 0 :(得分:0)

我使用下面的代码来禁用jquery移动框架中的ajax,

        <script type="text/javascript">
            // do not handle links via ajax by default
            $(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; });
        </script>

这将禁用页面中的ajax并重定向到单击的页面。