Ir ao conteúdo
  • Cadastre-se

João pedro chaves

Membro Pleno
  • Posts

    22
  • Cadastrado em

  • Última visita

Reputação

4
  1. Olá, @washalbano Obrigado por me responder, então, o meu código estava funcionando perfeitamente antes do select2, mas surgiu a necessidade de pesquisar em alguns selects, então resolvi usar o select2, mas após adicionar ele o código de adição de campos não funciona mais, que é um código que pega os campos que vem junto da tabela mySQL, e os mostram em campos de texto, mas agora com o select2 eles não aparecem mais. o código index completo. <?php include_once("conexao.php"); include_once("MySQL.php"); include_once("mais-campos.php"); ?> <!DOCTYPE html> <!--selecionar o idioma principal--> <html lang="pt-br"> <!--o que vai ser passado para o navegador--> <head> <meta charset="UTF-8"> <title>Gerador de Cartas</title> <link rel="stylesheet" href="style-carta.css"> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <link rel="stylesheet" href="/resources/demos/style.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script> $(function() { $("#datepicker").datepicker(); }); </script> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/site.webmanifest"> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css" rel="stylesheet" /> <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js"></script> </head> <!--o que vai aparecer no navegador--> <body> <img id="logo" src="logo_tembrazil_original_01.png" alt=""> <h1>Trade & Marketing Brazil</h1> <p id="missao"><strong> Gerador de Cartas Para Promotores</strong>.</p> <p>Use esse gerador para automatizar a criação da carta de apresentação para o PDV.<br> Para alteração do arquivo ultiliza as tags desta forma, para suas determinadas Informações. </P> <p> #Funcionario#, #CPF#, #RG#, #Início#, #Final#, #RazãoSocialPDV#, #CNPJPDV#, #endereço#, #RazãoSocialCliente#, #numeração#, #bairro#, #cidade#, #estado#, #cep# </p> <h2 id="titulo">Gerador de Cartas <ul> <script> $(document).ready(function() { $('#promotor').select2(); }); $(document).ready(function() { $('#pdv').select2(); }); </script> <form method="POST" action="gera-carta.php" enctype="multipart/form-data"> <li>*Promotor: <select required id="promotor" name="promotor"> <option style="display:none" disabled selected value>-- Selecione um Promotor --</option> <?php $resultado_promotor = "SELECT * FROM colaboradores"; $resultado_da_seleção_promotor = mysqli_query($mysqli, $resultado_promotor); while($row_promotor = mysqli_fetch_assoc($resultado_da_seleção_promotor)){ ?> <option value="<?php echo $row_promotor['Nome']?>" data-rg="<?php echo $row_promotor['Rg']?>" data-cpf="<?php echo $row_promotor['Cpf']?>"> <?php echo $row_promotor['Nome']?> </option> <?php }?> </select> </li><br> <li>CPF: <input id="cpf" readonly="true" type="text" name="cpf"><br> </li> <li>RG: <input id="rg" readonly="true" type="text" name="rg"><br> </li><br> <li>*PDV: <select required id="pdv" name="pdv"> <option style="display:none" disabled selected value> -- Selecione um PDV -- </option> <?php $resultado_PDV = "SELECT * FROM pdv"; $resultado_da_seleção_pdv = mysqli_query($mysqli, $resultado_PDV); while($row_pdv = mysqli_fetch_assoc($resultado_da_seleção_pdv)){ ?> <option type="checkbox" value= "<?php echo $row_pdv['Razão Social']?>" data-rua= "<?php echo $row_pdv['Endereço']?>" data-numero= "<?php echo $row_pdv['Número']?>" data-bairro= "<?php echo $row_pdv['Bairro']?>" data-cidade= "<?php echo $row_pdv['Cidade']?>" data-Estado= "<?php echo $row_pdv['Estado']?>" data-cep= "<?php echo $row_pdv['CEP']?>" data-cnpj= "<?php echo $row_pdv['CNPJ']?>"> <?php echo $row_pdv['Nome Comercial']?> </option> <?php }?> </select> </li><br> <div> <li>Rua: <input id="rua" readonly="true" type="text" name="rua"><br> </li> <li>Número: <input id="numero" readonly="true" type="text" name="numero"><br> </li> <li>Bairro: <input id="bairro" readonly="true" type="text" name="bairro"><br> </li> <li>Cidade: <input id="cidade" readonly="true" type="text" name="cidade"><br> </li> <li>Estado: <input id="estado" readonly="true" type="text" name="estado"><br> </li> <li>CEP: <input id="cep" readonly="true" type="text" name="cep"><br> </li> <li>CNPJ: <input id="cnpj" readonly="true" type="text" name="cnpj"><br> </li><br> </div> <li>*Campanha: <!--value é o que vai aparecer no docx, e o que vem depois, é o que vai aparecer na página--> <select required name="campanha"> <option style="display:none" disabled selected value> -- Selecione uma campanha -- </option> <?php $resultado_Campanha = "SELECT * FROM campanhas"; $resultado_da_seleção = mysqli_query($mysqli, $resultado_Campanha); while($row_campanha = mysqli_fetch_assoc($resultado_da_seleção)) { ?> <option value="<?php echo $row_campanha['razao_social_cliente'] ?>"> <?php echo $row_campanha['nome_fantasia_cliente']?></option> <?php }?> </select> </li><br> <li>*Periodo da Carta: <br> Inicio: <input id="date" type="date" required name="inicio"> Fim: <input id="date" type="date" required name="fim"> </li> <script> function reformatDate(date) { dArr = date.split("-"); // ex input "2010-01-18" return dArr[2]+ "/" +dArr[1]+ "/" +dArr[0].substring(0,4); //ex out: "18/01/2010" } </script> <input type="file" required name="arquivo" id="arquivo"> <input type="submit" name="envia_arquivo"> <input type="reset" value="Apagar"> </form> </ul> </h2><br> </Select> </body> </html> Ele só precisa mostrar as informações nos campos adicionais. Se puder me ajudar, caso precise de mais informação só me informar.
  2. Olá a todos, estou tentando usar o "select2" mas no meu código eu tenho que adicionar campos a mais porém após adicionar ele, meu código não funciona mais com os campos adicionais, alguém saberia dizer o motivo? O código de adição de campos a mais. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> $(document).on('change', '#promotor', function () { var value = $(this).val(); var option = $(this).find("option:selected"); var cpf = option.data('cpf'); var rg = option.data('rg'); $('#promotor' ).val(value); $('#rg' ).val(rg); $('#cpf' ).val(cpf); }); </script> <script type="text/javascript"> $(document).on('change', '#pdv', function () { var value = $(this).val(); var option = $(this).find("option:selected"); var numero = option.data('numero'); var rua = option.data('rua'); var bairro = option.data('bairro'); var cidade = option.data('cidade'); var estado = option.data('estado'); var cep = option.data('cep'); var cnpj = option.data('cnpj'); $('#pdv' ).val(value); $('#cnpj' ).val(cnpj); $('#rua' ).val(rua); $('#bairro' ).val(bairro); $('#cidade' ).val(cidade); $('#estado' ).val(estado); $('#cep' ).val(cep); $('#numero' ).val(numero); }); </script> Meu Código dos campos visíveis: <script> $(document).ready(function() { $('#promotor').select2(); }); $(document).ready(function() { $('#pdv').select2(); }); </script> <form method="POST" action="gera-carta.php" enctype="multipart/form-data"> <li>*Promotor: <select required id="promotor" name="promotor"> <option style="display:none" disabled selected value>-- Selecione um Promotor --</option> <?php $resultado_promotor = "SELECT * FROM colaboradores"; $resultado_da_seleção_promotor = mysqli_query($mysqli, $resultado_promotor); while($row_promotor = mysqli_fetch_assoc($resultado_da_seleção_promotor)){ ?> <option value="<?php echo $row_promotor['Nome']?>" data-rg="<?php echo $row_promotor['Rg']?>" data-cpf="<?php echo $row_promotor['Cpf']?>"> <?php echo $row_promotor['Nome']?> </option> <?php }?> </select> </li><br> <li>CPF: <input id="cpf" readonly="true" type="text" name="cpf"><br> </li> <li>RG: <input id="rg" readonly="true" type="text" name="rg"><br> </li><br> <li>*PDV: <select required id="pdv" name="pdv"> <option style="display:none" disabled selected value> -- Selecione um PDV -- </option> <?php $resultado_PDV = "SELECT * FROM pdv"; $resultado_da_seleção_pdv = mysqli_query($mysqli, $resultado_PDV); while($row_pdv = mysqli_fetch_assoc($resultado_da_seleção_pdv)){ ?> <option type="checkbox" value= "<?php echo $row_pdv['Razão Social']?>" data-rua= "<?php echo $row_pdv['Endereço']?>" data-numero= "<?php echo $row_pdv['Número']?>" data-bairro= "<?php echo $row_pdv['Bairro']?>" data-cidade= "<?php echo $row_pdv['Cidade']?>" data-Estado= "<?php echo $row_pdv['Estado']?>" data-cep= "<?php echo $row_pdv['CEP']?>" data-cnpj= "<?php echo $row_pdv['CNPJ']?>"> <?php echo $row_pdv['Nome Comercial']?> </option> <?php }?> </select>
  3. Olá, meu código se baseia em php, html, e MySQL, eu tenho uns três Selects com a mesma função só que pegando informações de tabelas diferentes, esses selects estão funcionando, porém acabei necessitando de adicionar mais um select com os produtos, porém mesmo ele estando igual aos demais, na pagina HTML ele não aparece as informações da tabela, e tira as outras coisas abaixo dele. dando f12 na pagina ele mostra o seguinte error: Fatal error: Uncaught TypeError: mysqli_fetch_assoc(): Argument #1 ($result) must be of type mysqli_result, bool given in C:\xampp 2\htdocs\pagina_teste\Backup-do-Site\index-gera-carta.php:150 Stack trace: #0 C:\xampp 2\htdocs\pagina_teste\Backup-do-Site\index-gera-carta.php(150): mysqli_fetch_assoc(false) #1 {main} thrown in C:\xampp 2\htdocs\pagina_teste\Backup-do-Site\index-gera-carta.php on line 150. eu agradeço qualquer tipo de ajuda. meu código: <li>*Campanha: <!--value é o que vai aparecer no docx, e o que vem depois, é o que vai aparecer na página--> <select required name="campanha"> <option style="display:none" disabled selected value> -- Selecione uma campanha -- </option> <?php $resultado_Campanha = "SELECT * FROM campanhas"; $resultado_da_seleção = mysqli_query($mysqli, $resultado_Campanha); while($row_campanha = mysqli_fetch_assoc($resultado_da_seleção)) { ?> <option value="<?php echo $row_campanha['razao_social_cliente'] ?>"> <?php echo $row_campanha['nome_fantasia_cliente']?></option> <?php }?> </select> </li><br> <li>Produto: <select name="Produto"> <option style="display: none;" disabled selected value>-- Selecione um Produto --</option> <?php $resultado_Produtos = "SELECT * FROM planilha de produtos"; $resultado_da_seleção_Produto = mysqli_query($mysqli, $resultado_Produtos); while($row_produto = mysqli_fetch_assoc($resultado_da_seleção_Produto)) { ?> <option value="<?php echo $row_campanha['Nome']?>"> <?php echo $row_produto['Nome']?></option> <?php }?> </select> </li><br> Eu coloquei, um dos selects para mostrar como eles são. E já vou me desculpando caso seja um erro bobo meu, mas eu realmente não sei o que pode ser.
  4. Olá, eu tenho um código php que usa o str_replace para substituir algumas "tags" por seleções de um Select com dados de um banco de dados MySQl, atualmente ele funciona corretamente, eu seleciono no html um nome e ele já substitui no arquivo enviado depois, porém me vi na necessidade de colocar um select multiplo, pois em alguns arquivos preciso colocar mais de um local, mas ai se encontra o problema, o arquivo pode ter um ou mais locais, como eu poderia fazer isso? meu código abaixo: Parte HTML <li>PDV <select required id="pdv" name="pdv"> <option style="display:none" disabled selected value> -- Selecione um PDV -- </option> <?php $resultado_PDV = "SELECT * FROM pdv"; $resultado_da_seleção_pdv = mysqli_query($mysqli, $resultado_PDV); while($row_pdv = mysqli_fetch_assoc($resultado_da_seleção_pdv)){ ?> <option value= "<?php echo $row_pdv['Razão Social']?>" data-rua= "<?php echo $row_pdv['Endereço']?>" data-numero= "<?php echo $row_pdv['Número']?>" data-bairro= "<?php echo $row_pdv['Bairro']?>" data-cidade= "<?php echo $row_pdv['Cidade']?>" data-Estado= "<?php echo $row_pdv['Estado']?>" data-cep= "<?php echo $row_pdv['CEP']?>" data-cnpj= "<?php echo $row_pdv['CNPJ']?>"> <?php echo $row_pdv['Nome Comercial']?> </option> <?php }?> </select> </li><br> <li>Rua <input id="rua" readonly="true" type="text" name="rua"><br> </li> <li>Numero <input id="numero" readonly="true" type="text" name="numero"><br> </li> <li>Bairro <input id="bairro" readonly="true" type="text" name="bairro"><br> </li> <li>Cidade <input id="cidade" readonly="true" type="text" name="cidade"><br> </li> <li>Estado <input id="estado" readonly="true" type="text" name="estado"><br> </li> <li>cep <input id="cep" readonly="true" type="text" name="cep"><br> </li> <li>cnpj <input id="cnpj" readonly="true" type="text" name="cnpj"><br> </li><br> uma parte PHP para ele selecionar outros campos do MySQL. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> $(document).on('change', '#pdv', function () { var value = $(this).val(); var option = $(this).find("option:selected"); var numero = option.data('numero'); var rua = option.data('rua'); var bairro = option.data('bairro'); var cidade = option.data('cidade'); var estado = option.data('estado'); var cep = option.data('cep'); var cnpj = option.data('cnpj'); $('#pdv' ).val(value); $('#cnpj' ).val(cnpj); $('#rua' ).val(rua); $('#bairro' ).val(bairro); $('#cidade' ).val(cidade); $('#estado' ).val(estado); $('#cep' ).val(cep); $('#numero' ).val(numero); }); </script> Parte PHP. $data = date("d/m/Y"); $template_file_name = "C:/xampp 2/htdocs/pagina_teste/cartas base/$novo_nome"; $rand_no = rand(10000, 999999); $fileName = "C.Ap - carta do Promotor " . $_POST['promotor'] . ".docx"; $folder = "C:/xampp 2/htdocs/pagina_teste/cartas pronta"; $full_path = $folder . '/' . $fileName; if (!file_exists($folder)) { mkdir($folder); } //Copy the Template file to the Result Directory copy($template_file_name, $full_path); // add calss Zip Archive $zip_val = new ZipArchive; //Docx file is nothing but a zip file. Open this Zip File if($zip_val->open($full_path) == true) { // In the Open XML Wordprocessing format content is stored. // In the document.xml file located in the word directory. $key_file_name = 'word/document.xml'; $message = $zip_val->getFromName($key_file_name); // this data Replace the placeholders with actual values $message = str_replace("#Funcionario#", "$_POST[promotor]", $message); $message = str_replace("#CPF#", "$_POST[cpf]", $message); $message = str_replace("#RG#", "$_POST[rg]", $message); $message = str_replace("#Início#", "$_POST[inicio]", $message); $message = str_replace("#Final#", "$_POST[fim]", $message); $message = str_replace("#RazãoSocialPDV#", "$_POST[pdv]", $message); $message = str_replace("#CNPJPDV#", "$_POST[cnpj]", $message); $message = str_replace("rua", "$_POST[rua]", $message); $message = str_replace("#RazãoSocialCliente#", "$_POST[campanha]", $message); $message = str_replace("numero", "$_POST[numero]", $message); $message = str_replace("#bairro#", "$_POST[bairro]", $message); $message = str_replace("#cidade#", "$_POST[cidade]", $message); $message = str_replace("#estado#", "$_POST[estado]", $message); $message = str_replace("#cep#", "$_POST[cep]", $message); //Replace the content with the new content created above. $zip_val->addFromString($key_file_name, $message); $zip_val->close(); } $arquivo = $diretorio.$novo_nome; $resultado = unlink($arquivo); if($mysqli->query($sql_code)) echo "<script>window.location='index-gera-carta.php';alert ('$msg');</script>"; else echo "<script>window.location='index-gera-carta.php';alert ('$msg');</script>";
  5. Além disso, tem como eu colocar um campo de pesquisa no <select> acima? em um select padrão, da pra usar o componente select2, mas nesse não tem como, teria algum componente, ou função do php?
  6. Olá, eu preciso usar str_replace para alterar alguns arquivos com dados do MySQL, ele atualmente usa o método post de um formulário html, mas eu preciso que o código pegue o que foi preenchido no formulário html com valores do MySQL, porém eu tenho um problema as informações que eu preciso são "nome", "CPF" e "RG" tudo sendo pego em um único <select> e sendo separado no $_POST, Além disso a página tem um botão de enviar arquivo, mas se eu recarregar a página ele reenvia o formulário, teria alguma forma disso ser resolvido? meu código abaixo: <?php include_once("teste.php"); include_once("index-gera-carta.php"); $data = date("d/m/Y"); $template_file_name = "cartas dos promotores base/$novo_nome"; $rand_no = rand(10000, 999999); $fileName = "C.Ap - carta teste" . $rand_no . ".docx"; $folder = "cartas dos promotores prontas"; $full_path = $folder . '/' . $fileName; if (!file_exists($folder)) { mkdir($folder); } //Copy the Template file to the Result Directory copy($template_file_name, $full_path); // add calss Zip Archive $zip_val = new ZipArchive; //Docx file is nothing but a zip file. Open this Zip File if($zip_val->open($full_path) == true) { // In the Open XML Wordprocessing format content is stored. // In the document.xml file located in the word directory. $key_file_name = 'word/document.xml'; $message = $zip_val->getFromName($key_file_name); // this data Replace the placeholders with actual values $message = str_replace("Funcionario", "$_POST[promotor]", $message); $message = str_replace("CPF1", "$_POST[pdv]", $message); $message = str_replace("RG1", "$_POST[campanha]", $message); $message = str_replace("Inicio", "$_POST[inicio]", $message); $message = str_replace("Final", "$_POST[fim]", $message); $message = str_replace("RazãoSocialPDV", "$_POST[pdv]", $message); $message = str_replace("CNPJPDV", "12112223331", $message); $message = str_replace("EndereçoPDV", "Endereço do pdv", $message); $message = str_replace("RazãoSocialCliente", "$_POST[campanha]", $message); $message = str_replace("data_de_hoje", "$data", $message); //Replace the content with the new content created above. $zip_val->addFromString($key_file_name, $message); $zip_val->close(); } $arquivo = $diretorio.$novo_nome; $resultado = unlink($arquivo); e o HTML (como, depois de enviar ele ia direto pro PHP acima, eu o deixei como o padrão): <?php include("teste.php"); $msg = false; if( isset($_FILES['Arquivo'])){ $extensao = strtolower(substr($_FILES['Arquivo']['name'], -5)); $novo_nome = md5(time()). $extensao; $diretorio = "cartas dos promotores base/"; move_uploaded_file($_FILES['Arquivo']['tmp_name'], $diretorio.$novo_nome); $sql_code = "INSERT INTO arquivos (Codigo, arquivos, data) VALUES(null, '$novo_nome', NOW())"; if($mysqli->query($sql_code)) $msg = "Arquivo enviado com sucesso!"; else $msg = "Falha ao enviar arquivo."; } ?> <!DOCTYPE html> <!--selecionar o idioma principal--> <html lang="pt-br"> <!--o que vai ser passado para o navegador--> <head> <meta charset="UTF-8"> <title>Gerador de Cartas</title> <link rel="stylesheet" href="style-gera-cata.css"> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <link rel="stylesheet" href="/resources/demos/style.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script> $(function() { $("#datepicker").datepicker(); }); </script> </head> <!--o que vai aparecer no navegador--> <body> <img id="logo" src="logo_tembrazil_original_01.png" alt=""> <h1>Trade & Marketing Brazil</h1> <p id="missao"><strong> Gerador de Cartas Para Promotores</strong>.</p> <p>use esse gerador para automatizar a criação da carta de apresentação para o PDV.</P> <h2 id="titulo">Gerador de Cartas <ul> <form method="POST" action="gerador_de_cartas.php" enctype="multipart/form-data"> <li>Promotor <input type="search" id="texto" name="promotor"> </li><br> <li>PDV <input type="search" id="texto" name="pdv"> </li><br> <li>Campanha <!--value é o que vai aparecer no docx, e o que vem depois, é o que vai aparecer na página--> <select name="campanha"> <option> Selecione </option> <?php $resultado_Campanha = "SELECT * FROM campanhas"; $resultado_da_seleção = mysqli_query($mysqli, $resultado_Campanha); while($row_campanha = mysqli_fetch_assoc($resultado_da_seleção)) { ?> <option value="<?php echo $row_campanha['razao_social_cliente'] ?>"> <?php echo $row_campanha['nome_campanha']?></option> <?php }?> </select> </li><br> <li>Periodo da Carta <br> <br> Inicio<input id="date" type="date" name="inicio"> Fim <input id="date" type="date" name="fim"> </li> <input type="file" name="Arquivo" id="Arquivo"> <input type="submit" name="envia_arquivo"> <input type="reset" value="Apagar"> <?php if($msg != false) echo "<P> $msg </p>";?> </form> </ul> </h2><br> </body> </html> Agradeço qualquer tipo de ajuda, obrigado.
  7. Já Resolvi, em parte. pois como eu queria que ele se alterasse para pdf achei que so trocar o tipo de arquivo iria resolver, mas me equivoquei, manter o arquivo em .docx continua funcionando mas o ideal era trocar para pdf, mas tudo bem, além disso como eu posso colocar uma formatação no texto do Str_replace, eu sei que se você colocar <b></b> entre a frase você coloca em negrito mas ao fazer isso o arquivo volta a dar como corrompido. O que eu posso fazer quanto a isso?
  8. Fala Mano, valeu isso Me ajudou Bastante, Mas tem um ligeiro Problema, o arquivo está vindo corrompido, o que eu poderia fazer quanto a isso?
  9. Olá, Como Posso Fazer o download automático de um arquivo, docx, ou melhor ainda Transforma-lo em Pdf e baixar, através de PHP, atualmente eu tenho um Projeto PHP em que eu envio um arquivo com Tags "Str_Replace" para ser substituído com Mysql. E Como estou fazendo por LocalHost Atualmente, eu acabei deixando ele só gerando o arquivo para uma Pasta, mas eu to querendo fazer ou ele gerar um Botão após a criação, ou o que seria melhor ainda, o download automático, ele acaba por Não ter um nome Fixo pois Seu nome tem uma geração de número aleatório. Segue Meu Código PHP abaixo. <?$data = date("d/m/Y"); $template_file_name = "cartas dos promotores base/C.Ap - carta teste.docx"; $rand_no = rand(10000, 999999); $fileName = "C.Ap - carta teste" . $rand_no . ".docx"; $folder = "cartas dos promotores prontas"; $full_path = $folder . '/' . $fileName; if (!file_exists($folder)) { mkdir($folder); } //Copy the Template file to the Result Directory copy($template_file_name, $full_path); // add calss Zip Archive $zip_val = new ZipArchive; //Docx file is nothing but a zip file. Open this Zip File if($zip_val->open($full_path) == true) { // In the Open XML Wordprocessing format content is stored. // In the document.xml file located in the word directory. $key_file_name = 'word/document.xml'; $message = $zip_val->getFromName($key_file_name); // this data Replace the placeholders with actual values $message = str_replace("Funcionario", "$_POST[promotor]", $message); $message = str_replace("CPF1", "$_POST[pdv]", $message); $message = str_replace("RG1", "$_POST[campanha]", $message); $message = str_replace("Inicio", "$_POST[inicio]", $message); $message = str_replace("Final", "$_POST[fim]", $message); $message = str_replace("RazãoSocialPDV", "$_POST[pdv]", $message); $message = str_replace("CNPJPDV", "12112223331", $message); $message = str_replace("EndereçoPDV", "Endereço do pdv", $message); $message = str_replace("RazãoSocialCliente", "$_POST[campanha]", $message); $message = str_replace("data_de_hoje", "$data", $message); //Replace the content with the new content created above. $zip_val->addFromString($key_file_name, $message); $zip_val->close(); } e o meu html. <p id="missao"><strong> Gerador de Cartas Para Promotores</strong>.</p> <p>use esse gerador para automatizar a criação da carta de apresentação para o PDV.</P> <h2 id="titulo">Gerador de Cartas <ul> <form method="post" action="gerador_de_cartas.php" enctype="multipart/form-data"> <li>Promotor <input type="search" id="texto" name="promotor"> </li><br> <li>PDV <input type="search" id="texto" name="pdv"> </li><br> <li>Campanha <input type="search" id="texto" name="campanha"> </li><br> <li>Periodo da Carta <br> <br> Inicio<input id="date" type="date" name="inicio" > Fim <input id="date" type="date" name="fim" ></li> <input type="submit"> <input type="reset" value="Apagar"> <input type="file" name="Arquivo" id="Arquivo"> </form> </ul> </h2><br> </body> </html>
  10. Estou fazendo um site em que a pessoa, envia um arquivo, ai um código PHP faz umas alterações com str_replace, e depois ele deveria reenviar o arquivo por download mas ele ou está devolvendo o arquivo corrompido, ou vazio, o arquivo usado é .docx. Código abaixo. <?php $rand = rand(100 , 999); $pasta = "teste carta"; $arquivo = "carta teste$rand.docx"; $full_path = $pasta . "/" . $arquivo; $data = date("d/m/Y"); $dir = "imagens/"; // recebendo o arquivo multipart $file = $_FILES["arquivo"]; // Move o arquivo da pasta temporaria de upload para a pasta de destino if (move_uploaded_file($file["tmp_name"], "$dir/".$file["name"] )) { echo "Arquivo enviado com sucesso!"; } else { echo "Erro, o arquivo não pode ser enviado."; } copy( "$dir/".$file["name"], $full_path); unlink("$dir/".$file["name"]); $zip_val = new ZipArchive; //Docx file is nothing but a zip file. Open this Zip File if($zip_val->open($full_path) == true) { // In the Open XML Wordprocessing format content is stored. // In the document.xml file located in the word directory. $key_file_name = 'word/document.xml'; $message = $zip_val->getFromName($key_file_name); // this data Replace the placeholders with actual values $message = str_replace("Funcionario", "$_POST[promotor]", $message); $message = str_replace("CPF1", "$_POST[pdv]", $message); $message = str_replace("RG1", "$_POST[campanha]", $message); $message = str_replace("Inicio", "$_POST[inicio]", $message); $message = str_replace("Final", "$_POST[fim]", $message); $message = str_replace("RazãoSocialPDV", "$_POST[pdv]", $message); $message = str_replace("CNPJPDV", "12112223331", $message); $message = str_replace("EndereçoPDV", "Endereço do pdv", $message); $message = str_replace("RazãoSocialCliente", "$_POST[campanha]", $message); $message = str_replace("data_de_hoje", "$data", $message); //Replace the content with the new content created above. $zip_val->addFromString($key_file_name, $message); $zip_val->close(); } // Define o tempo máximo de execução em 0 para as conexões lentas set_time_limit(0); // Arqui você faz as validações e/ou pega os dados do banco de dados $aquivoNome = $arquivo; // nome do arquivo que será enviado p/ download $arquivoLocal = $full_path; // caminho absoluto do arquivo // Verifica se o arquivo não existe if (!file_exists($arquivoLocal)) { // Exiba uma mensagem de erro caso ele não exista exit; } // Aqui você pode aumentar o contador de downloads // Definimos o novo nome do arquivo $novoNome = "arquivo$rand.docx"; // Configuramos os headers que serão enviados para o browser header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename="'.$novoNome.'"'); header('Content-Type: application/docx'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($aquivoNome)); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Expires: 0'); ob_end_clean(); flush(); // Envia o arquivo para o cliente readfile($aquivoNome); Meio extenso eu sei, porém como eu não sei muito de PHP eu tenho pegado códigos da internet e alterado o que achava necessário, Alguém poderia me ajudar?
  11. Acabei Resolvendo, era até coisa boba. <? $rand = rand(100 , 999); $pasta = "teste carta"; $arquivo = "carta teste$rand.docx"; $full_path = $pasta . "/" . $arquivo; $dir = "imagens/"; // recebendo o arquivo multipart $file = $_FILES["arquivo"]; // Move o arquivo da pasta temporaria de upload para a pasta de destino if (move_uploaded_file($file["tmp_name"], "$dir/".$file["name"] )) { echo "Arquivo enviado com sucesso!"; } else { echo "Erro, o arquivo não pode ser enviado."; } copy( "$dir/".$file["name"], $full_path); unlink("$dir/".$file["name"]);
  12. Oi, como eu poderia trocar o nome de um arquivo enviado por HTML para PHP?, atualmente eu estou criando uma forma de alterar informações de um arquivo .DOCX com informações do mySQL, mas como não sei muito programação estou usando um arquivo predefinido, o código esta pegando o arquivo alterando o seu nome e as informações necessárias por str_replace, mas isso acaba limitando ele a apenas um arquivo ai pensei em uma forma de resolver isso, cheguei ao seguinte código HTML: <form method="post" action="gerador_de_cartas.php" enctype="multipart/form-data"> <li>Promotor <input type="search" id="texto" name="promotor"> </li><br> <li>PDV <input type="search" id="texto" name="pdv"> </li><br> <li>Campanha <input type="search" id="texto" name="campanha"> </li><br> <li>Periodo da Carta <br> <br> Inicio<input id="date" type="date" name="inicio" > Fim <input id="date" type="date" name="fim" ></li> <input type="submit"> <input type="reset" value="Apagar"> <input type="file" name="Arquivo" id="Arquivo"> </form> Ai envia para o PHP: <?php $dir = "cartas dos promotores base/"; // recebendo o arquivo multipart $file = $_FILES["arquivo"]; // Move o arquivo da pasta temporaria de upload para a pasta de destino if (move_uploaded_file($file["tmp_name"], "$dir/".$file["name"])) { echo "Arquivo enviado com sucesso!"; } else { echo "Erro, o arquivo não pode ser enviado."; } Minha duvida é a seguinte, como eu posso alterar o nome do arquivo para um "padrão", e depois exclui-lo, substituir por um arquivo temporário para não consumir armazenamento?
  13. Oi, então estou querendo fazer um site em que eu subo um arquivo word com determinadas tags e o php as substitui por informações de um banco de dados mysql, porém ao fazer essa substituição o dado do banco de Dados que deveria aparecer some do arquivo, e não sei o que estou fazendo de errado, alguém poderia me ajudar? Meu código abaixo: <?php require_once 'teste.php'; $data = date("d/m/Y"); $template_file_name = "C.Ap - DOM Inhaúma.docx"; $rand_no = rand(10000, 999999); $fileName = "C.Ap - DOM Inhaúma" . $rand_no . ".docx"; $folder = "cartas dos promotores"; $full_path = $folder . '/' . $fileName; if (!file_exists($folder)) { mkdir($folder); } //Copy the Template file to the Result Directory copy($template_file_name, $full_path); // add calss Zip Archive $zip_val = new ZipArchive; //Docx file is nothing but a zip file. Open this Zip File if($zip_val->open($full_path) == true) { // In the Open XML Wordprocessing format content is stored. // In the document.xml file located in the word directory. $key_file_name = 'word/document.xml'; $message = $zip_val->getFromName($key_file_name); while($dado = $con->fetch_array()) { echo $dado['cnpj_cliente'] = $cnpj;} // this data Replace the placeholders with actual values $message = str_replace("Funcionario", "joao pedro", $message); $message = str_replace("CPF", "CPF", $message); $message = str_replace("RG", "RG", $message); $message = str_replace("Inicio", "periodo de atuação inicio", $message); $message = str_replace("Final", "periodo de atuação final", $message); $message = str_replace("RazãoSocialPDV", "Razão Social Pdv", $message); $message = str_replace("CNPJPDV", "$cnpj", $message); $message = str_replace("EndereçoPDV", "Endereço do pdv", $message); $message = str_replace("RazãoSocialCliente", "Razão_social_do_Cliente", $message); $message = str_replace("data_de_hoje", "$data", $message); //Replace the content with the new content created above. $zip_val->addFromString($key_file_name, $message); $zip_val->close(); } Estou usando PHPWord (ou pelo menos acho que estou).

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!