2014-10-10 2 views
0

Я могу легко экспортировать данные как excel с помощью простого кода, но у меня возникла проблема, когда мне нужно вызвать export.php j. Данные кода запроса не загружаются как код файла export.php, как показано нижеЭкспорт данных как файл excel

<?php 
include '../../config.php'; 
function cleanData(&$str) 
{ 
    if($str == 't') $str = 'TRUE'; 
    if($str == 'f') $str = 'FALSE'; 
    if(preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) { 
     $str = "'$str"; 
    } 
    if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; 
    $str = mb_convert_encoding($str, 'UTF-16LE', 'UTF-8'); 
} 

$filename = "website_data_" . date('Ymd') . ".csv"; 
header("Content-Disposition: attachment; filename=\"$filename\""); 
header("Content-Type: text/csv<span>; charset=UTF-16LE</span>"); 

$out = fopen("php://output", 'w'); 

$flag = false; 
$result = mysql_query("SELECT * FROM employee") or die('Query failed!'); 
while(false !== ($row = mysql_fetch_assoc($result))) { 
    if(!$flag) { 
     fputcsv($out, array_keys($row), ',', '"'); 
     $flag = true; 
    } 
    array_walk($row, 'cleanData'); 
    if($row['photo']!='') 
    { 
     $row['photo']="http://localhost/admin/employee_image/".$row['photo']; 
    } 
    fputcsv($out, array_values($row), ',', '"'); 
} 
fclose($out); 
exit; 

есть какой-либо способ назвать этот файл jquery?

+0

Вы имеете в виду здесь вызов ajax? – Rikesh

+0

ya Я имею в виду ajax call здесь – kavita

ответ

1

Нет, вы не можете сделать это с помощью Javascript с помощью jQuery или любой другой библиотеки, данные AJAX вызывают в Javascript движке внутри браузера.

Но вы можете использовать HTML5 скачать атрибут:

<a href="your_file.xls" download="YourFile.xls">Download Excel</a> 

И дать соответствующие заголовки в PHP:

header("Content-Type: application/vnd.ms-excel; charset=utf-8"); 
header("Content-Disposition: attachment; filename=your_file.xls"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: private",false); 

EDIT:

Хотя выше будет работать, я беру свои слова обратно как я нашел это:

http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads/

Сделано https://stackoverflow.com/users/455556/john-culviner, попросить его о помощи, если вам нужно

Ура!

+0

, где мне нужно указать путь к файлу php? – kavita

+0

в href dear –

+0

Мне нужно какое-то значение сеанса сеанса в теге , чтобы данные могли быть извлечены, я могу отправить данные в теге ? – kavita

Смежные вопросы