marcosfj1 0 Denunciar post Postado Janeiro 21, 2011 Seguinte galera seguindo uns codigos ai na internet achei um interessante, para salvar os dados no formato do excel(.xsl) Eu queria colocar um botao SUBMIT pois os dados já sao mostrados na tabela, e ai ficava escolha do usuario clicar ou nao no botao e assim converter para excel. Entao eu fiz o seguinte coloquei o codigo dentro do envento ONCLICK do botao mas acabou nao dado certo....Olhem meu codigo <tr align="right" > <td colspan="3" ><input type=BUTTON value="Converter" name="execel" onClick= "<?php $arquivo = 'pontos_clientes.xls'; $html = ''; $html .= '<table broder = "1">'; $html .= '<tr>'; $html .= '<td colspan="3"></tr>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td colspan="3">Pontos Clientes</tr>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td colspan="3"></tr>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td><b>Coluna 1</b></td>'; $html .= '<td><b>Coluna 2</b></td>'; $html .= '<td><b>Coluna 3</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td>L1C1</td>'; $html .= '<td>L1C2</td>'; $html .= '<td>L1C3</td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td>L2C1</td>'; $html .= '<td>L2C2</td>'; $html .= '<td>L2C3</td>'; $html .= '</tr>'; $html .= '</table>'; header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT"); header ("Cache-Control: no-cache, must-revalidate"); header ("Pragma: no-cache"); header ("Content-type: application/x-msexcel"); header ("Content-Disposition: attachment; filename=\"{$arquivo}\"" ); header ("Content-Description: PHP Generated Data" ); //echo $html; exit; ?> "> </td> </tr> No momento to salvando qualquer coisa nos dados da q estao enviados na tabela, porem se isso der certo de salvar no excel ai sim vou colocar um WHILE para trazer todos os dados da minha consulta MySQL....Mas primeiro tem q dar certo isso hehe Alguem sabe me ajudar? Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Janeiro 21, 2011 Amigo marcosfj1 onClick no HTML serve para eventos Javascript, chamadas AJAX dentre outros. O correto seria você carregar um popup que gere o arquivo para download ou um ajax que crie o arquivo em uma pasta, um link html ou algo neste sentido. Pesquise no google sobre AJAX, Javascript, popups e HTML. Estude antes de desenvolver ok? HTML é o conhecimento mínimo exigido para se desenvolver algo com PHP. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Janeiro 21, 2011 Concordo com o Periscuelo acima. Cara você entendeu o codigo o que ele faz? a parte do header's ? Ele gera o html em xls e depois disponibiliza o arquivo para download, então não existe nada de evento, apenas um link para download normal... Não precisa nem comentar isso certo ? onclick="<?php echo 'tabela' header()... ?>" Compartilhar este post Link para o post Compartilhar em outros sites
peterhall 0 Denunciar post Postado Janeiro 21, 2011 marcos, eu uso esse script para enviar os dados para excel (xls, csv, xlsx) e funciona, tanto através de tabela directa no mysql como de recordset. é você ver e adaptar ás suas necessidades. <?php require_once('Connections/conexao.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $select = "SELECT * FROM table_name"; // ou recordset $export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) ); $fields = mysql_num_fields ( $export ); $header = ''; for ( $i = 0; $i < $fields; $i++ ) { $header .= mysql_field_name( $export , $i ) . "\t"; } $data = ''; while( $row = mysql_fetch_row( $export ) ) { $line = ''; foreach( $row as $value ) { if ( ( !isset( $value ) ) || ( $value == "" ) ) { $value = "\t"; } else { $value = str_replace( '"' , '""' , $value ); $value = '"' . $value . '"' . "\t"; } $line .= $value; } $data .= trim( $line ) . "\n"; } $data = str_replace( "\r" , "" , $data ); if ( $data == "" ) { $data = "\n(0) Records Found!\n"; } header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=nome_do_ficheiro.xls"); // xls, csv, xlsx, txt header("Pragma: no-cache"); header("Expires: 0"); print "$header\n$data"; ?> basta colocar um link na pagina (ou botão) a chamar este script. fui... Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Janeiro 21, 2011 Amigo marcosfj1 onClick no HTML serve para eventos Javascript, chamadas AJAX dentre outros. O correto seria você carregar um popup que gere o arquivo para download ou um ajax que crie o arquivo em uma pasta, um link html ou algo neste sentido. Pesquise no google sobre AJAX, Javascript, popups e HTML. Estude antes de desenvolver ok? HTML é o conhecimento mínimo exigido para se desenvolver algo com PHP. Abraços. Concordo com o Periscuelo acima. Cara você entendeu o codigo o que ele faz? a parte do header's ? Ele gera o html em xls e depois disponibiliza o arquivo para download, então não existe nada de evento, apenas um link para download normal... Não precisa nem comentar isso certo ? onclick="<?php echo 'tabela' header()... ?>" Entao galera por nao ter conhecimento de AJAX e JavaScript eu tentei fazer dessa maneira, e apesar de tudo deu certo :) Agora qdo clico na pagina já mostra a opcao de salvar, a unica questao é q alem de estar salvando os dados da consulta SQL ele ta mandando para o arquivo .XSL uma parte do menu a esquerda q tenho junto na pagina. Mas de qualquer forma consegui fazer o q eu queria q era mandar os dados da consulta para o excel, só preciso ver isso do menu ir tbm e como resolver isso Obrigado a todos que responderam Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Janeiro 21, 2011 Se você fizer da forma certa, não vai ter problema com o menu talvez :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Janeiro 21, 2011 Se você fizer da forma certa, não vai ter problema com o menu talvez :thumbsup: Sim já to dando uma estudada em AJAX e JavaScript pra ver se consigo fazer algo com eles, o f*** é q nao tenho conhecimento nessas areas ai fica f***, mas vou q q arrumo aqui valeu Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Janeiro 21, 2011 Mas eu acho que você não precisa do ajax em si para montar a página... apenas insere um <a href='exportarexcel.php?id=$id'>Gerar excel</a>, e então na pagina exportarexcel.php você pega o id da consulta e gera o arquivo em .xls (caso você esteja exibindo esse resultados usando uma consulta do mysql) :P Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Janeiro 21, 2011 Mas eu acho que você não precisa do ajax em si para montar a página... apenas insere um <a href='exportarexcel.php?id=$id'>Gerar excel</a>, e então na pagina exportarexcel.php você pega o id da consulta e gera o arquivo em .xls (caso você esteja exibindo esse resultados usando uma consulta do mysql) :P Hum vou tentar...na verdade estava a pesquisar outras coisas simplesmente pq você falaram aqui hehe...senao nem ia mexer com isso hehe Vou ver como posso adaptar isso que você me passou e depois posto aqui valeu OU cara deu certo aqui dessa maneira mto obrigado!! E o melhor nao precisei usar nem javascript nem ajax hehe....consegui enviar a consulta pelo link Agora o negocio é fazer nas consultas sql mais complexas, estas q vao pegar mesmo Mas pelo menos o q eu queria aprender q era mandar os dados para um planilha no excel ja foi resolvi Valeu Compartilhar este post Link para o post Compartilhar em outros sites