Author Topic: EXPORT function absolutely not working  (Read 4597 times)

hellokert

  • Pro Deluxe
  • Newbie
  • *
  • Posts: 15
  • Hellokert
    • View Profile
EXPORT function absolutely not working
« on: April 21, 2017, 12:14:27 pm »
Surely i can not do everything, but i do not work with excel export. By clicking "excel export" button, nothing happens.

When it already works, I will use it on the server side, but I do not know how to refer to php as well.
The attached code was copied entirely from the paramquery example programs.

What is missing?

Code: [Select]
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/pq-pro/pqgrid.min.css" />
<link rel="stylesheet" href="/pq-pro/pqgrid.ui.min.css" />
<link rel="stylesheet" href="/pq-pro/themes/antracit/pqgrid.css" />
<link rel="stylesheet" href="/pq-pro/myTheme.css" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" />

<script src="/pq-pro/pqgrid.min.js"></script>
<script src="/pq-pro/touch-punch/touch-punch.min.js"></script>
<script src="/pq-pro/localize/pq-localize-hu.js"></script>
<script src="/pq-pro/jsZip-2.5.0/jszip.min.js"></script>

<script>

    $(function () {
        var data = [
            { rank: 1, company: 'Exxon Mobil', revenues: 339938.0, profits: 36130.0 },
            { rank: 2, company: 'Wal-Mart Stores', revenues: 315654.0, profits: 11231.0 },
            { rank: 3, company: 'Royal Dutch Shell', revenues: 306731.0, profits: 25311.0 },
            { rank: 4, company: 'BP', revenues: 267600.0, profits: 22341.0 },
            { rank: 5, company: 'General Motors', revenues: 192604.0, profits: -10567.0 },
            { rank: 6, company: 'Chevron', revenues: 189481.0, profits: 14099.0 },
            { rank: 7, company: 'DaimlerChrysler', revenues: 186106.3, profits: 3536.3 },
            { rank: 8, company: 'Toyota Motor', revenues: 185805.0, profits: 12119.6 },
            { rank: 9, company: 'Ford Motor', revenues: 177210.0, profits: 2024.0 },
            { rank: 10, company: 'ConocoPhillips', revenues: 166683.0, profits: 13529.0 },
            { rank: 11, company: 'General Electric', revenues: 157153.0, profits: 16353.0 },
            { rank: 12, company: 'Total', revenues: 152360.7, profits: 15250.0 },
            { rank: 13, company: 'ING Group', revenues: 138235.3, profits: 8958.9 },
            { rank: 14, company: 'Citigroup', revenues: 131045.0, profits: 24589.0 },
            { rank: 15, company: 'AXA', revenues: 129839.2, profits: 5186.5 },
            { rank: 16, company: 'Allianz', revenues: 121406.0, profits: 5442.4 },
            { rank: 17, company: 'Volkswagen', revenues: 118376.6, profits: 1391.7 },
            { rank: 18, company: 'Fortis', revenues: 112351.4, profits: 4896.3 },
            { rank: 19, company: 'Crédit Agricole', revenues: 110764.6, profits: 7434.3 },
            { rank: 20, company: 'American Intl. Group', revenues: 108905.0, profits: 10477.0 }
        ];

        var obj = {
            showTitle: false,
            height: 'flex',
            scrollModel: { autoFit: true },
            pageModel: { type: 'local' },
            toolbar: {
                cls: 'pq-toolbar-export',
                items: [{
                    type: 'button',
                    label: "Export to Excel",
                    icon: 'ui-icon-document',
                    listeners: [{
                        "click": function (evt) {
                             $("#grid_export").pqGrid("exportExcel", { url: "/o/", sheetName: "pqGrid sheet" });
                        }
                    }]
                }]
            }
        };
        obj.colModel = [
            { title: "Rank", width: 100, dataType: "integer", dataIndx: "rank" },
            { title: "Company", width: 200, dataType: "string", dataIndx: "company" },
            { title: "Revenues ($ millions)", width: 150, dataType: "float", align: "right", dataIndx: "revenues" },
            { title: "Profits ($ millions)", width: 150, dataType: "float", align: "right", dataIndx: "profits",
                render: function (ui) {
                    return $.paramquery.formatCurrency(ui.cellData);
                }
            }
        ];
        obj.dataModel = {
            data: data,
            location: "local",
            sorting: "local",
            sortIndx: "profits",
            sortDir: "down"
        };
        var $grid = $("#grid_export").pqGrid(obj);
    });

</script>


</head>
<body style="font-size: 10px">

<div id="grid_export" style="margin:auto;"></div>
</body>
</html>

Thanks for your help.

paramvir

  • Administrator
  • Hero Member
  • *****
  • Posts: 6156
    • View Profile
Re: EXPORT function absolutely not working
« Reply #1 on: April 21, 2017, 05:32:24 pm »
What is url: "/o/" pointing to in your exportExcel method? This is not the code from examples.

Please

1. read the API documentation https://paramquery.com/pro/api#method-exportData

2. Check both remote and local export examples.

https://paramquery.com/pro/demos/export

https://paramquery.com/pro/demos/export_local

3. Make yourself familiar with Chrome devTools or firebug. This would help you to look out for errors (e.g., incorrect urls ).

4. Get familiar with GET and POST requests or use local export.

hellokert

  • Pro Deluxe
  • Newbie
  • *
  • Posts: 15
  • Hellokert
    • View Profile
Re: EXPORT function absolutely not working
« Reply #2 on: April 21, 2017, 07:39:08 pm »
Thank you, but unfortunately this did not help.

"/o/" is an path in localhost.

Please, write me how and what to give here:
Code: [Select]
$("#grid_export").pqGrid("exportExcel", { url: "/pro/demos/excel", sheetName: "pqGrid sheet" });

Where can I refer to this php code?
Code: [Select]
if (isset($_POST["excel"]) && isset($_POST["extension"]))       
{
    $extension = $_POST["extension"];   
    if ($extension == "csv" || $extension == "xml")
    {               
        session_start();
        $_SESSION['excel'] = $_POST['excel'];
        $filename = "pqGrid." . $extension;             
        echo $filename;       
    }
}
else if(isset($_GET["filename"]))
{
    $filename = $_GET["filename"];
    if ($filename == "pqGrid.csv" || $filename == "pqGrid.xml")
    {
        session_start();       
        if (isset($_SESSION['excel'])) {   
            $excel = $_SESSION['excel'];       
            $_SESSION['excel']=null;       
            header('Content-Disposition: attachment; filename="'.$filename.'"');
            header('Content-Type: text/plain');
            header('Content-Length: ' . strlen($excel));
            header('Connection: close');           
            echo $excel;
            exit;
        }   
    }
}

Thank you.
« Last Edit: April 21, 2017, 08:20:12 pm by hellokert »

hellokert

  • Pro Deluxe
  • Newbie
  • *
  • Posts: 15
  • Hellokert
    • View Profile
Re: EXPORT function absolutely not working
« Reply #3 on: April 21, 2017, 09:43:51 pm »
OK, the local version with filesaver succeeded.

GET and POST requests: Where can I refer to this php code url?

paramvir

  • Administrator
  • Hero Member
  • *****
  • Posts: 6156
    • View Profile
Re: EXPORT function absolutely not working
« Reply #4 on: April 24, 2017, 10:02:23 am »
Add php code into a php file e.g., somefile.php and host it in webserver.

Use the absolute or relative url ( Uniform Resource Locator ) of the php file in the url parameter of exportData method.

url: 'http://.....somepath/somefile.php'

I noticed that you have been using the code from the free version. Please consult the Pro documentation and demos and use the correct code.

https://paramquery.com/pro/api#method-exportData
https://paramquery.com/pro/demos/export

hellokert

  • Pro Deluxe
  • Newbie
  • *
  • Posts: 15
  • Hellokert
    • View Profile
Re: EXPORT function absolutely not working
« Reply #5 on: April 24, 2017, 11:26:55 am »
Yes, thank you.

In the meantime I have solved it, but the url has not been clear so far in your samples.

But it is clear: url: 'http://.....somepath/somefile.php'