简体   繁体   中英

Call php method from ajax,return nonsense page

Trying page.İt's working.And downloading excel(xlsx) file.But some code,calling another php file in tableCreate.php=>class TableCreate => function Excele_Aktar().İt's not working.And return nonsense ajax return.I'm sharing ajax return,bottom.

exportExcel_Php.php

<?php
session_start();
$rapor_adi="deneme_rapor";
header( 'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' );
header( 'Content-Disposition: attachment;filename="'.$rapor_adi.'.xlsx"' );
header( 'Cache-Control: max-age=0' );

$excel_yol = $_SESSION[ 'kok_dizin' ] . "Excel_Islemler/PHPExcel/Classes/PHPExcel.php";
require_once( $excel_yol  );
$phpexcel = new PHPExcel();
$phpexcel->setActiveSheetIndex( 0 );
$sheet = $phpexcel->getActiveSheet();
$phpexcel->getActiveSheet()->setTitle( 'Sayfa1' );
$phpexcel->getActiveSheet()->setCellValue( "A1", "Tarih" );
$phpexcel->getActiveSheet()->setCellValue( "B1", "Saat" );
$phpexcel->getActiveSheet()->setCellValue( "C1", "Order Adı" );
$phpexcel->getActiveSheet()->setCellValue( "D1", "Band No" );
$topac5 = 2;

$phpexcel->getActiveSheet()->setCellValue( "A$topac5", "Tarih Veri" );
$phpexcel->getActiveSheet()->setCellValue( "B$topac5", "Saat Veri" );
$phpexcel->getActiveSheet()->setCellValue( "C$topac5", "Order Adı Veri" );
$phpexcel->getActiveSheet()->setCellValue( "D$topac5", "Band No Veri" );

$style_header = array(
  'font' => array(
    'bold' => true,
    'size' => "12",
  ),
  'alignment' => array(
    'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
  )
);

$phpexcel->getActiveSheet()->getStyle( "A1:D1" )->applyFromArray( $style_header );
$phpexcel->getActiveSheet()->getColumnDimension( 'A' )->setWidth( "13" );
$phpexcel->getActiveSheet()->getColumnDimension( 'B' )->setWidth( "7" );
$phpexcel->getActiveSheet()->getColumnDimension( 'C' )->setWidth( "12" );
$phpexcel->getActiveSheet()->getColumnDimension( 'D' )->setWidth( "10" );


$writer = PHPExcel_IOFactory::createWriter( $phpexcel, 'Excel2007' );
$writer->setIncludeCharts( TRUE );
$writer->save( 'php://output' );
return "Rapor Excele Aktarıldı";

?>

I calling tableCreate =>Excele_Aktar() method from here another php page.

tableCreate.php

<?php
session_start();
class TableCreate {
  function Excele_Aktar( $rapor_adi, $rapor_tablo_columns, $rapor_tablo_data, $periyot ) {
    header( 'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' );
    header( 'Content-Disposition: attachment;filename="Detayli_Operasyon_Raporu.xlsx"' );
    header( 'Cache-Control: max-age=0' );
    $excel_classes_yol = $_SESSION[ 'kok_dizin' ] ."Excel_Islemler/PHPExcel/Classes/PHPExcel.php";
    require( $excel_classes_yol );


    $phpexcel = new PHPExcel();
    $phpexcel->setActiveSheetIndex( 0 );
    $sheet = $phpexcel->getActiveSheet();
    $phpexcel->getActiveSheet()->setTitle( 'Sayfa1' );
    $phpexcel->getActiveSheet()->setCellValue( "A1", "Tarih" );
    $phpexcel->getActiveSheet()->setCellValue( "B1", "Saat" );
    $phpexcel->getActiveSheet()->setCellValue( "C1", "Order Adı" );
    $phpexcel->getActiveSheet()->setCellValue( "D1", "Band No" );
    $topac5 = 2;

    $phpexcel->getActiveSheet()->setCellValue( "A$topac5", "Tarih Veri" );
    $phpexcel->getActiveSheet()->setCellValue( "B$topac5", "Saat Veri" );
    $phpexcel->getActiveSheet()->setCellValue( "C$topac5", "Order Adı Veri" );
    $phpexcel->getActiveSheet()->setCellValue( "D$topac5", "Band No Veri" );

    $style_header = array(
      'font' => array(
        'bold' => true,
        'size' => "12",
      ),
      'alignment' => array(
        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
      )
    );

    $phpexcel->getActiveSheet()->getStyle( "A1:D1" )->applyFromArray( $style_header );
    $phpexcel->getActiveSheet()->getColumnDimension( 'A' )->setWidth( "13" );
    $phpexcel->getActiveSheet()->getColumnDimension( 'B' )->setWidth( "7" );
    $phpexcel->getActiveSheet()->getColumnDimension( 'C' )->setWidth( "12" );
    $phpexcel->getActiveSheet()->getColumnDimension( 'D' )->setWidth( "10" );


    $writer = PHPExcel_IOFactory::createWriter( $phpexcel, 'Excel2007' );
    $writer->setIncludeCharts( TRUE );
    $writer->save( 'php://output' );
    return "Rapor Excele Aktarıldı";
  }
}
?>

Ajax Page

function PersonelVerimRaporExceleAktar()
  {
    Preloader_Baslat();
    var raporCekmeYontem="Excel";
    var personel_adi=$("#personel" ).val();
    $.ajax({
      type:"POST",
      url:"./Pages/Personel_Islemler/Personel_Islemleri.php",
      data:{baslangic_tarih:baslangic_tarih,bitis_tarih:bitis_tarih,personel_adi:personel_adi,raporCekmeYontem:raporCekmeYontem,paramPersonel_Verim_Raporu_Islem:"Personel_Verim_Raporu_Getir"},

    })
    .done(function(gelen_cevap){

      Preloader_Bitir();
      document.write(gelen_cevap);



    })
    .fail(function(jqXHR,textStatus){
      alert("Bir hata oluştu:"+textStatus);
    });


  }

返回无意义的ajax结果

I'm edit.Ajax code.But not download.I'm sharing console log ss.

在此处输入图像描述

function PersonelVerimRaporExceleAktar()
  {
    //Preloader_Baslat();
    var raporCekmeYontem="Excel";
    var personel_adi=$("#personel" ).val();
    $.ajax({
      type:"POST",
      url:"./Pages/Personel_Islemler/Personel_Islemleri.php",
      data:{baslangic_tarih:baslangic_tarih,bitis_tarih:bitis_tarih,personel_adi:personel_adi,raporCekmeYontem:raporCekmeYontem,paramPersonel_Verim_Raporu_Islem:"Personel_Verim_Raporu_Getir"},

    })
    .done(function(gelen_cevap){
     var a = document.createElement('a');
            var url = window.URL.createObjectURL(gelen_cevap);
            a.href = url;
            a.download = 'myfile.xlsx';
            document.body.append(a);
            a.click();
            a.remove();
            window.URL.revokeObjectURL(url);
      //Preloader_Bitir();
    })
    .fail(function(jqXHR,textStatus){
      alert("Bir hata oluştu:"+textStatus);
    });


  }

I'm fixed problem.adyson one thank you.Edited Last:

    function PersonelVerimRaporExceleAktar()
  {
      var filename;
    Preloader_Baslat();
    var raporCekmeYontem="Excel";
    var personel_adi=$("#personel" ).val();
    $.ajax({
      type:"POST",
         xhrFields: {
            responseType: 'blob'
        },
      url:"./Pages/Personel_Islemler/Personel_Islemleri.php",
      data:{baslangic_tarih:baslangic_tarih,bitis_tarih:bitis_tarih,personel_adi:personel_adi,raporCekmeYontem:raporCekmeYontem,paramPersonel_Verim_Raporu_Islem:"Personel_Verim_Raporu_Getir"},

    })
    .done(function(gelen_cevap,status, xhr){
         var filename = "";
        var disposition = xhr.getResponseHeader('Content-Disposition');
        if (disposition && disposition.indexOf('attachment') !== -1) {
            var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
            var matches = filenameRegex.exec(disposition);
            if (matches != null && matches[1]) filename = matches[1].replace(/['"]/g, '');
        }
     var a = document.createElement('a');
           var a = document.createElement('a');
            var url = window.URL.createObjectURL(gelen_cevap);
            a.href = url;
            a.download = filename;
            document.body.append(a);
            a.click();
            a.remove();
            window.URL.revokeObjectURL(url);
      Preloader_Bitir();
    })
    .fail(function(jqXHR,textStatus){
      alert("Bir hata oluştu:"+textStatus);
    });


  }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM