Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Estou com um problema que não encontro solução.
Estou colocando em uma variavel o layout de uma newsletter, porém neste html existe um loop que não estou conseguido executar.
Obs. eu só consegui gravar as variáveis colocando-as entre (". .") porém o mesmo não funciona com os comandos do { e }while .
quando eu chamo a variável com a função eval ele escreve as palavras do { e }while e se eu os coloco entre (". .") o sistema dá pau.
alguém tem uma solução? :(
$mensagem="echo\"<table width='550' border='0' cellspacing='0' cellpadding='2'> <tr> <td><div align='center' class='tituloMenor'>Boletim</div></td> <td> </td> </tr> <tr> <td><p> </p> do { <table width='100%' border='0' cellpadding='5' cellspacing='0' class='pontilhado_titulo'> <tr> <td><div align='justify' class='tituloMenor'> ".$row_rs_boletim['titulo']." </div></td> </tr> <tr> <td><div align='justify'> ".$row_rs_boletim['texto']." </div></td> </tr> <tr> <td><div align='right' class='fonte_base'>Fonte: ".$row_rs_boletim['fonte']." </div></td> </tr> </table> } while (".$row_rs_boletim." = ".mysql_fetch_assoc($rs_boletim)."); </td> <td> </td> </tr></table>\";";
<?php eval($mensagem); ?>Cara não deu certo, não sei se você entendeu o qeu eu preciso.
Eu estou fazendo o loop, usei o do while pq eu uso o dreamweaver e ele próprio faz os loops, o resultado disso eu quero gravar em uma variável que será enviada como corpo do email.
estou recuperando essa variavel com eval();
eu preciso imprimir na tela o conteúdo dessa variável que é gerado a partir de um loop contendo informações de um banco de dados.
com este código eu consigo imprimir apenas um registro pois não consigo fazer o loop funcionar quando aciono o conteúdo da variavel
$mensagem="echo\"<table width='550' border='0' cellspacing='0' cellpadding='2'> <tr> <td><div align='center' class='tituloMenor'>Boletim</div></td> <td> </td> </tr> <tr> <td><p> </p> <?php do { ?> <table width='100%' border='0' cellpadding='5' cellspacing='0' class='pontilhado_titulo'> <tr> <td><div align='justify' class='tituloMenor'>".$row_rs_boletim['titulo']."</div></td> </tr> <tr> <td><div align='justify'>".$row_rs_boletim['texto']."</div></td> </tr> <tr> <td><div align='right' class='fonte_base'>Fonte: ".$row_rs_boletim['fonte']."</div></td> </tr> </table> <?php } while ($row_rs_boletim = mysql_fetch_assoc($rs_boletim)); ?></td> <td> </td> </tr></table>\";";
Aqui eu recupero o conteúdo da variável
<?php eval($mensagem); ?>
Olás!
Tenta assim:
CODE
<?$mensagem
="echo<table width='550' border='0' cellspacing='0' cellpadding='2'>
<tr>
<td><div align='center' class='tituloMenor'>Boletim</div></td>
<td> </td>
</tr>
<tr>
<td><p> </p>"
. <?
php do { ?> . " <table width='100%' border='0' cellpadding='5' cellspacing='0' class='pontilhado_titulo'>
<tr>
<td><div align='justify' class='tituloMenor'>".$row_rs_boletim['titulo']."</div></td>
</tr>
<tr>
<td><div align='justify'>".$row_rs_boletim['texto']."</div></td>
</tr>
<tr>
<td><div align='right' class='fonte_base'>Fonte: ".$row_rs_boletim['fonte']."</div></td>
</tr>
</table>" .
<?php } while ($row_rs_boletim = mysql_fetch_assoc($rs_boletim)); ?> . "</td>
<td> </td>
</tr>
</table>;";
eval($mensagem);
?>
Deu certo agora?
Também não funcionou.
Mas a sua sugestão me abriu a mente, então em uma de minhas madrugadas quebrando a cabeça eu encontrei uma solução. Não sei se é uma boa solução, mas atende as minhas necessidades.
Eu quebrei o codigo em partes e no momento do loop eu concateno seu valor em outra variável, conseguindo assim o resultado qeu eu necessito.
<?php$parte1="echo\"<html><head><style type=text/css><!--.corpo { font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #000000;}.pontilhado_titulo { background-image: url([http://www.aceauditoria.com.br/teste/imagens/pontilhado_titulo.gif);](http://www.aceauditoria.com.br/teste/imagens/pontilhado_titulo.gif);) background-repeat: repeat-x; background-position: bottom; border: none;}.fonte_base { font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #869BB9;}.tituloMenor { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #425889;}--></style></head><body><table width=550 border=0 cellspacing=0 cellpadding=2> <tr> <td><div align=center class=tituloMenor>Boletim</div></td> <td> </td> </tr> <tr> <td><p> </p>\";"; $soma=""; //inicializa a variável $soma do { $parte2="echo\" <table width=100% border=0 cellpadding=5 cellspacing=0 class=pontilhado_titulo> <tr> <td><div align=justify class=tituloMenor>".$row_rs_boletim['titulo']."</div></td> </tr> <tr> <td><div align=justify class=corpo>".$row_rs_boletim['texto']."</div></td> </tr> <tr> <td><div align=right class=fonte_base>Fonte: ".$row_rs_boletim['fonte']."</div></td> </tr> </table>\";"; $soma=$soma.$parte2; //no momento do loop vai concatendando os registros uns aos outros } while ($row_rs_boletim = mysql_fetch_assoc($rs_boletim)); $parte3="echo\" </td> <td> </td> </tr></table></body></html>\";";$mensagem=$parte1.$soma.$parte3; //monta o corpo da mensagem unindo as variáveis?>
<?php eval($mensagem); ?>
Muito obrigado a todos.
e até a próxima.
Nossa cara.. ta tudo bagunçado isso..
Pra que se ta usando o do while???
Tenta assim...
$mensagem = "<table width='550' border='0' cellspacing='0' cellpadding='2'> <tr> <td><div align='center' class='tituloMenor'>Boletim</div></td> <td> </td> </tr> <tr> <td><p></p>"; while ($row_rs_boletim = mysql_fetch_assoc($rs_boletim)){ $mensagem .= " <table width='100%' border='0' cellpadding='5' cellspacing='0' class='pontilhado_titulo'> <tr> <td><div align='justify' class='tituloMenor'> ".$row_rs_boletim['titulo']." </div></td> </tr> <tr> <td><div align='justify'> ".$row_rs_boletim['texto']." </div></td> </tr> <tr> <td><div align='right' class='fonte_base'>Fonte: ".$row_rs_boletim['fonte']." </div></td> </tr> </table>";} $mensagem .= " </td> <td> </td> </tr></table>";