Ir ao conteúdo
  • Cadastre-se

João pedro chaves

Membro Pleno
  • Posts

    22
  • Cadastrado em

  • Última visita

Tudo que João pedro chaves postou

  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).
  14. Eu queria criar um botão em html em que eu enviasse o arquivo com as tags de substituição, e o php me entregasse já feito, já consegui colocar o botão mas como eu envio isso ao php para ele realizar sua tarefa é a questão.
  15. Oi, então, estou com um problema, eu estou tentando criar um site em que eu subo um arquivo .docx por html e um código php pega esse arquivo e usa o str_replace() pra alterar algumas coisas, já consegui fazer ele pegar já de um arquivo já baixado no meu pc, mas o que eu quero é que não se limita a somente um arquivo, poderiam me ajudar? por favor.
  16. @Rui Guilherme cara obrigado pela atenção e a ajuda, eu usei os dois métodos, o primeiro não havia funcionado a princípio, porque eu usei no head não no body foi descuido meu, mas obrigado.
  17. Olá eu coloquei isso e não foi continuou na mesma.
  18. Olá bom dia, boa tarde, boa noite, estou montando um site que precisa baixar/imprimir um arquivo em pdf ja fiz o botão, bonitinho, funciona, porém quando eu clico nele ele cria o pdf porém coloca uma data acima do texto, então eu gostaria que vcs me ajudassem a tirar isso, se tiver como se não tiver como tirar, esconder. <> <script> function CriaPDF() { const carta = document.getElementById('carta').innerHTML; let style = "<style>"; style = style + "table {width: 100%;font: 20px Calibri;}"; style = style + "table, th, td {border: solid 1px #DDD; border-collapse: collapse;"; style = style + "padding: 2px 3px;text-align: center;}"; style = style + "</style>"; const win = window.open('', '', 'height=700,width=700'); win.document.write('<html lang="pt-br">'); win.document.write(style); win.document.write('</head>'); win.document.write('<body>'); win.document.write(carta); win.document.write('</body></html>'); win.document.close(); win.print(); } </script>
  19. Eu já consegui avançar um pouco consegui criar um código para criar um dropdown, porém eu gostaria de saber como eu faço para ele ao invés de usar as informações que estão no código ele tirar os dados de uma planilha do excel e modelos de texto do word, eu gostaria de ajuda. Aqui vai o codigo que eu fiz. <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>jQuery UI Autocomplete - Combobox</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <link rel="stylesheet" href="/resources/demos/style.css"> <style> .custom-combobox { position: relative; display: inline-block; } .custom-combobox-toggle { position: absolute; top: 0; bottom: 0; margin-left: -1px; padding: 0; } .custom-combobox-input { margin: 0; padding: 5px 10px; } </style> <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() { $.widget( "custom.combobox", { _create: function() { this.wrapper = $( "<span>" ) .addClass( "custom-combobox" ) .insertAfter( this.element ); this.element.hide(); this._createAutocomplete(); this._createShowAllButton(); }, _createAutocomplete: function() { var selected = this.element.children( ":selected" ), value = selected.val() ? selected.text() : ""; this.input = $( "<input>" ) .appendTo( this.wrapper ) .val( value ) .attr( "title", "" ) .addClass( "custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left" ) .autocomplete({ delay: 0, minLength: 0, source: $.proxy( this, "_source" ) }) .tooltip({ classes: { "ui-tooltip": "ui-state-highlight" } }); this._on( this.input, { autocompleteselect: function( event, ui ) { ui.item.option.selected = true; this._trigger( "select", event, { item: ui.item.option }); }, autocompletechange: "_removeIfInvalid" }); }, _createShowAllButton: function() { var input = this.input, wasOpen = false; $( "<a>" ) .attr( "tabIndex", -1 ) .attr( "title", "Show All Items" ) .tooltip() .appendTo( this.wrapper ) .button({ icons: { primary: "ui-icon-triangle-1-s" }, text: false }) .removeClass( "ui-corner-all" ) .addClass( "custom-combobox-toggle ui-corner-right" ) .on( "mousedown", function() { wasOpen = input.autocomplete( "widget" ).is( ":visible" ); }) .on( "click", function() { input.trigger( "focus" ); // Close if already visible if ( wasOpen ) { return; } // Pass empty string as value to search for, displaying all results input.autocomplete( "search", "" ); }); }, _source: function( request, response ) { var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" ); response( this.element.children( "option" ).map(function() { var text = $( this ).text(); if ( this.value && ( !request.term || matcher.test(text) ) ) return { label: text, value: text, option: this }; }) ); }, _removeIfInvalid: function( event, ui ) { // Selected an item, nothing to do if ( ui.item ) { return; } // Search for a match (case-insensitive) var value = this.input.val(), valueLowerCase = value.toLowerCase(), valid = false; this.element.children( "option" ).each(function() { if ( $( this ).text().toLowerCase() === valueLowerCase ) { this.selected = valid = true; return false; } }); // Found a match, nothing to do if ( valid ) { return; } // Remove invalid value this.input .val( "" ) .attr( "title", value + " didn't match any item" ) .tooltip( "open" ); this.element.val( "" ); this._delay(function() { this.input.tooltip( "close" ).attr( "title", "" ); }, 2500 ); this.input.autocomplete( "instance" ).term = ""; }, _destroy: function() { this.wrapper.remove(); this.element.show(); } }); $( "#combobox" ).combobox(); $( "#toggle" ).on( "click", function() { $( "#combobox" ).toggle(); }); } ); </script> </head> <body> <div class="ui-widget"> <label>Your preferred programming language: </label> <select id="combobox"> <option value>Select one...</option> <option value="ActionScript">ActionScript</option> <option value="AppleScript">AppleScript</option> <option value="Asp">Asp</option> <option value="BASIC">BASIC</option> <option value="C">C</option> <option value="C++">C++</option> <option value="Clojure">Clojure</option> <option value="COBOL">COBOL</option> <option value="ColdFusion">ColdFusion</option> <option value="Erlang">Erlang</option> <option value="Fortran">Fortran</option> <option value="Groovy">Groovy</option> <option value="Haskell">Haskell</option> <option value="Java">Java</option> <option value="JavaScript">JavaScript</option> <option value="Lisp">Lisp</option> <option value="Perl">Perl</option> <option value="PHP">PHP</option> <option value="Python">Python</option> <option value="Ruby">Ruby</option> <option value="Scala">Scala</option> <option value="Scheme">Scheme</option> </select> </div> </body> </html>
  20. Olá boa tarde, estou criando um site para minha empresa e estou querendo criar um página nova nele, estou usando o site.pro. Eu estou tentando criar um automatizador de texto, onde eu coloco caixas de seleções com determinadas informações e ele preenche sozinho o texto. Porém tenho zero conhecimento em html e gostaria de ajuda. Desde já agradeço.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!