Giihh 6 Denunciar post Postado Dezembro 8, 2015 Olá, Estou até hoje tentando entender como funciona ajax com php, para dar refesh sem carregar a página, por exemplo tem o seguinte formulário: <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('#ajax_form').change(function(){ var dados = jQuery( this ).serialize(); jQuery.ajax({ type: "POST", url: "processa.php", data: dados, success: function( data ) { alert( data ); } }); return false; }); }); </script> </head> <body> // FORM <form method="post" action="" id="ajax_form"> Title <input type = "text" name="titulo" value=""> X <input type = "text" name="x" value=""> Y <input type = "text" name="y" value=""> <input type="submit" name="enviar" value="Enviar" /> </form> // Ai aqui estou tentando imprimir a imagem atualizada <img src="'.<?php $texto?>.'.jpg"> no processa.php estou trabalhando com GD para gerar imagem <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $titulo = $_POST['titulo']; $x = $_POST['x']; $y = $_POST['y']; } // Gerar imagem usando a biblioteca GD $texto = $titulo; // conteudo vem do formulário post $font_size = 10; $font_file = 'arial.ttf'; $texto = wordwrap($texto, 11, "\n", true); $x = $x; // vem do formulario $y = $y; // vem do formulario $imagem = imagecreate(50, 50); $fundo= imagecolorallocate($imagem , 0, 0, 0); $letra= imagecolorallocate($imagem , 255, 255, 255); imagettftext($imagem, $font_size0, 0, $x, $y, $letra, $font_file, $texto); imagejpeg($imagem, "".$texto.".jpg", 100); // salva imagem diretorio imagedestroy($imagem); ?> Para gerar a imagem e salvar estou conseguindo, mas a dificuldade é passar via post os dados do formulário e dificuldade com o ajax para dar refresh sem atualizar a página. Um help pra me ajudar entender e fazer funcionar? Agradeço ajuda Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Dezembro 8, 2015 Você tem que pegar o retorno e escrever na página em algum elemento, por exemplo: Troque: alert( data ); Por: $('#imagem').attr("src",data); Troque: <img src="<?php $texto?>.jpg"> Por: <img id="imagem" src="<?php $texto?>.jpg"> Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Dezembro 8, 2015 Obrigada Eserra, ainda não funcionou. Nem gerou a imagem no diretório. A forma de recuperar o conteúdo dos inputs (post) esta certa? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Dezembro 8, 2015 <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('#ajax_form').submit(function(){ var dados = jQuery( this ).serialize(); jQuery.ajax({ type: "POST", url: "processa.php", data: dados, success: function( data ) { $('#imagem').attr("src",data); } }); return false; }); }); </script> </head> <body> // FORM <form method="post" action="" id="ajax_form"> Title <input type = "text" name="titulo" value=""> X <input type = "text" name="x" value=""> Y <input type = "text" name="y" value=""> <input type="submit" name="enviar" value="Enviar" /> </form> // Ai aqui estou tentando imprimir a imagem atualizada <img id="imagem" src="<?php $texto?>.jpg"> </body> </html> <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $titulo = $_POST['titulo']; $x = $_POST['x']; $y = $_POST['y']; } // Gerar imagem usando a biblioteca GD $texto = $titulo; // conteudo vem do formulário post $font_size = 10; $font_file = 'arial.ttf'; $texto = wordwrap($texto, 11, "\n", true); $x = $x; // vem do formulario $y = $y; // vem do formulario $imagem = imagecreate(50, 50); $fundo= imagecolorallocate($imagem , 0, 0, 0); $letra= imagecolorallocate($imagem , 255, 255, 255); imagettftext($imagem, $font_size, 0, $x, $y, $letra, $font_file, $texto); imagejpeg($imagem, $texto.".jpg", 100); // salva imagem diretorio imagedestroy($imagem); echo $texto.".jpg"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Dezembro 8, 2015 Verifique as permissões em pasta (no caso de servidor linux) Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Dezembro 8, 2015 Acho que deve ser permissão mesmo, pelo console, depois de clicar no submit demora cerca de uns 30 segundos e aparece forbidden 403, e no local onde deveria aparecer a imagem, no código fonte muda para o mesmo erro do console mas resumido : <img id="imagem" src="<br /> <font size='1'<table class='xdebug-error xe-warning' dir='ltr' bor...eeec'>..\processa.php<b>:</b>76</td></tr></table></font>imagemteste.jpg"> esse imagemteste.jpg é o titulo que coloquei no formulario para teste. Mas permissão de pasta não é, talvez eu deva informar corretamente no htaccess o processa.php, mas inserindo no htaccess: RewriteRule ^site\/?$ /site/form.php [NC,L] RewriteRule ^site\/?$ /site/processa.php [NC,L] // inserindo esse continua o mesmo erro . Continua dando erro forbidden 403 Compartilhar este post Link para o post Compartilhar em outros sites