Jump to content


Photo

Usar Tag´s Html Dentro Do Php


  • Faça o login para participar
18 replies to this topic

#1 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 04/03/2010, 11:08

Galera, tenho uma rotina em PHP e dentro dela estou usando instruções HTML até aí blz, mas dentro desse HTML preciso posicionar nar tela alguns dados do PHP, a rotina está assim
<?php
include ("conexao.php");
if (!empty($_POST["cpf_func"])){
$cpf_func=$_POST["cpf_func"];
$q="select * from funcionarios where cpf_func='$cpf_func'";
$r=mysql_query($q) or die ("Erro no Acesso do BANCO. ".mysql_error());
			
while ($linha=mysql_fetch_array($r)){
$nome_func=$linha['nome_func'];
				
echo '
<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="14%"><div align="right"><strong>Nome:</strong></div></td>
<td width="35%"><label>
<div align="left">

<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="<?php echo $nome_func?>"/>
}
}
?>
';

Quando rodo o sistema aparece o código <?php echo $nome_func?>

Agradeço se alguém puder dizer onde estou errando.

#2 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 04/03/2010, 11:23

Isso é normal, já que você começou a string com apóstrofo. Quando se usa apóstrofo, tudo é literal, ele não vai converter nada.

Você terá que usar aspas para conseguir exibir a resposta pelo PHP.

Infelizmente, o HTML usa aspas para definir as propriedades, hehehe.

A solução é utilizar o código para escapar as aspas no HTML.

Veja como fica.

<?php
echo "
<table width=\"76%\" border=\"1\" align=\"center\" cellpadding=\"1\" cellspacing=\"1\">
<tr>
<td width=\"14%\"><div align=\"right\"><strong>Nome:</strong></div></td>
<td width=\"35%\"><label>
<div align=\"left\">

<input name=\"nome_func\" type=\"text\" id=\"nome_func\" size=\"40\" maxlength=\"50\" value=\"$nome_func\"/>
";
?>

Observe que como utilizei aspas, não preciso declarar um bloco PHP em value, bastando passar a variável a ser expandida.

Uma forma bem mais elegante é utilizar heredoc. Observe:

<?php
echo <<<HTML
<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="14%"><div align="right"><strong>Nome:</strong></div></td>
<td width="35%"><label>
<div align="left">

<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="$nome_func"/>
HTML;
?>

Leia mais a respeito no Manual do PHP >>> http://www.php.net/m...ypes.string.php

Edição feita por: DarkSign, 04/03/2010, 11:24.

Não sabe por onde começar? Que tal pelas Regras ?

#3 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 04/03/2010, 13:56

Doutor, fiz da primeira forma que vc me indicou e funcionou, fiz tb da segunda forma e da erro ultima linha, veja só como eu fiz:

<html>
<body>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="cpf_pac" id="cpf_pac">
<INPUT type="submit" value="Buscar"></td>

<?php

include ("conexao.php");
if (!empty($_POST["cpf_func"])){

$cpf_func=$_POST["cpf_func"];
$q="select * from funcionarios where cpf_func='$cpf_func'";
$r=mysql_query($q) or die ("Erro no Acesso do BANCO. ".mysql_error());

echo <<<HTML
<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="14%"><div align="right"><strong>Nome:</strong></div></td>
<td width="35%"><label>
<div align="left">
<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="$nome_func"/>
</div>
</label></td>
</tr>
HTML;

}
?>

</form>
</body>
</html>



#4 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 04/03/2010, 14:09

Boa tarde amigos.

Também vale a pena dar uma lida sobre padrão de desenvolvimento MVC.
Separar as rotinas do template ajuda muito na leitura de código!

Abraços
Mateus Antunes
MBASistemas

#5 AlessandroWeb

AlessandroWeb

    Turista

  • Usuários
  • 56 posts
  • Sexo:Masculino
  • Localidade:Suzano / SP

Posted 04/03/2010, 15:03

Seguindo o que o MBA disse:

<html>
<body>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="cpf_pac" id="cpf_pac">
<INPUT type="submit" value="Buscar"></td>

<?php

include ("conexao.php");
if (!empty($_POST["cpf_func"])){
$cpf_func=$_POST["cpf_func"];
$q="select * from funcionarios where cpf_func='$cpf_func'";
$r=mysql_query($q) or die ("Erro no Acesso do BANCO. ".mysql_error());
?>
<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="14%"><div align="right"><strong>Nome:</strong></div></td>
<td width="35%"><label>
<div align="left">
<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="$nome_func"/>
</div>
</label></td>
</tr>
<?php

}
?>

</form>
</body>
</html>

Isso resolve os erros e facilita na visualização do code HTML
Atenciosamente,
Alessandro Santos.
igloo Internet Solutions
www.igloointernet.net

#6 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 04/03/2010, 15:43

Alessando, alguma coisa eu estou fazendo de errado, peguei seu código e implementei do o while ($l = mysql_fetch_array($r)){, logo abaixo do mysql_query, e fechei junto com no <?php ?> que você coloca logo abaixo e não está acontecendo nada.

Edição feita por: anave, 04/03/2010, 15:43.


#7 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 04/03/2010, 16:01

Anave, tem como postar o código em questão?

Abraços.
Mateus Antunes
Mateus Antunes
MBASistemas

#8 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 04/03/2010, 20:46

Anave o seu primeiro código teria dado certo se não tivesse cometido o que todos nós e até os mais experientes comentem, erro ao fechar string, geralmente por falta de atenção.

Lá no seu primeiro post, naquele cod, veja como vc fez:

include ("conexao.php");

if (!empty($_POST["cpf_func"])){

    $cpf_func=$_POST["cpf_func"];
    $q="select * from funcionarios where cpf_func='$cpf_func'";
    $r=mysql_query($q) or die ("Erro no Acesso do BANCO. ".mysql_error());

    while ($linha=mysql_fetch_array($r)){

        $nome_func=$linha['nome_func'];

        echo ' <table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
                <tr>
                 <td width="14%"><div align="right"><strong>Nome:</strong></div></td>
                 <td width="35%"><label><div align="left">

                 <input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="<?php echo $nome_func?>"/>

    }

}

?>

';

agora se vc fizer assim:


include ("conexao.php");

if (!empty($_POST["cpf_func"])){

    $cpf_func=$_POST["cpf_func"];
    $q="select * from funcionarios where cpf_func='$cpf_func'";
    $r=mysql_query($q) or die ("Erro no Acesso do BANCO. ".mysql_error());

    while ($linha=mysql_fetch_array($r)){

        $nome_func=$linha['nome_func'];

        echo ' <table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
                <tr>
                 <td width="14%"><div align="right"><strong>Nome:</strong></div></td>
                 <td width="35%">
                  <label>
                   <div align="left">

                    <input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="'.$nome_func.'"/>

                   </div>
                  </label>
                 </td>
                </tr>
               </table>';

               /* o Erro foi nas 6 últimas linhas de cima - vc escapou o php errado e não fechou as tags HTML e é ali também que ficaria o ";"
                   veja como eu fiz ali no value pra escapar */

    }

}

?>


Talvez funcione... mas só talvez hehehehe
Percebi que no seu primeiro post faltou fechar algumas tags HTML, mas depois nos outros posts vc colocou, então tomei a liberdade de fazer o cod igual ao seu primeiro, porém com as tags HTML fechadas devidamente e também mostrar como fazer aquela variável do value daquele input, não ser considerada parte da string de forma correta. ;)

Tente.

(y)Até mais

#9 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 05/03/2010, 08:15

Anave, tem como postar o código em questão?

Abraços.
Mateus Antunes


Segue o código:

<body>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="cpf_pac" id="cpf_pac">
<INPUT type="submit" value="Buscar"></td>

<?php

include ("conexao.php");
if (!empty($_POST["cpf_func"])){
$cpf_func=$_POST["cpf_func"];


$q="select * from funcionarios where cpf_func='$cpf_func'";
$r=mysql_query($q) or die ("Erro no Acesso do BANCO. ".mysql_error());

while ($l = mysql_fetch_array($r)){
$nome_func=$l['nome_func'];

?>

<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="14%"><div align="right"><strong>Nome:</strong></div></td>
<td width="35%"><label>
<div align="left">
<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="$nome_func"/>
</div>
</label></td>
</tr>
<?php
}
}
?>

</table>
</form>

</body>



#10 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 05/03/2010, 08:45

Anave, bom dia.
Você fechou o php. Como está acessando a variável ?

Esta linha:
<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="$nome_func"/>

Teste assim:
<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="<?php echo $nome_func; >?"/>

Mais uma vez eu falo.
O estudo de desenvolvimento MVC vale!

Abraços.
Mateus Antunes
Mateus Antunes
MBASistemas

#11 AlessandroWeb

AlessandroWeb

    Turista

  • Usuários
  • 56 posts
  • Sexo:Masculino
  • Localidade:Suzano / SP

Posted 05/03/2010, 09:38

<body>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="cpf_pac" id="cpf_pac">
<INPUT type="submit" value="Buscar"></td>

<?php

include ("conexao.php");
if (!empty($_POST["cpf_func"])){
$cpf_func=$_POST["cpf_func"];


$q="select * from funcionarios where cpf_func='$cpf_func'";
$r=mysql_query($q) or die ("Erro no Acesso do BANCO. ".mysql_error());

while ($l = mysql_fetch_array($r)){
$nome_func=$l['nome_func'];

?>

<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="14%"><div align="right"><strong>Nome:</strong></div></td>
<td width="35%"><label>
<div align="left">
<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="<?php echo $nome_func; ?>"/>
</div>
</label></td>
</tr>
<?php
}
}
?>

</table>
</form>
</body>

Como o MBA disse:

Mais uma vez eu falo.
O estudo de desenvolvimento MVC vale!


Realmente vale. Todo o tipo de estudo vale! Sempre temos que aprender coisas novas!

Até eu jah comecei estudar essa tal de heredoc ^^.

---
Mas enfim, eu estava reparando no seu code aqui.
No primeiro post vc fez os dois misturados ^^. O echo e as tags php dentro dele. veja:


echo '
<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="14%"><div align="right"><strong>Nome:</strong></div></td>
<td width="35%"><label>
<div align="left">

<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="<?php echo $nome_func?>"/>
}
}
?>
';

Ja estava pertinho de resolver o seu problema ein?!
T+
Atenciosamente,
Alessandro Santos.
igloo Internet Solutions
www.igloointernet.net

#12 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 05/03/2010, 11:53

Boa Crab! Até eu me esqueci do detalhe do ponto pra escapar variáveis, hehehe.

Vivendo e aprendendo é o que eu digo.

E sobre o heredoc não ter funcionado, talvez eu também não tenha entendido direito então, hehehe. Paciência, de volta ao estudo.

@anave: Testa o que o Crab falou, deveria funcionar.
Não sabe por onde começar? Que tal pelas Regras ?

#13 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 05/03/2010, 12:30

Galera, vou testar, mas antes estou dando uma estudada no MVC, se alguém tiver algum tutorial ou coisa parecida, agradeço mais uma vez pela ajuda.
Achei melhor para p estudar e tentar fazer algo baseado nele...

#14 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 05/03/2010, 16:31

O que vc está tentando fazer é muito simples, não tem mistério, estude sim... mas teste o que te postei e funcionará.

Não reinvente a roda, há diversas formas de fazer neston, mas muitas vezes a mais simples é a melhor.

(y) Até mais

#15 anave

anave

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino
  • Localidade:Salvador

Posted 08/03/2010, 09:42

Bom dia pessoal, funcionou, tive uma falta de atenção, mas comecei a analisar o código e percebi que ñ tinha aberto o <?php e fechando ?> no final entre os parenteses. Valeu mesmo...

Galeta eu andei pesquisando na net sobre o MVC, vi que ele é mais usado para programação OO, só q ainda sou novo em programação e ainda ñ programo OO, vc´s acham que eu deveria logo começar a estudar programação OO e começar a mudar meus códigos para ela ?



[quote name='AlessandroWeb' date='05/03/2010, 09:38' timestamp='1267792681' post='995981']
<body>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="cpf_pac" id="cpf_pac">
<INPUT type="submit" value="Buscar"></td>

<?php

include ("conexao.php");
if (!empty($_POST["cpf_func"])){
$cpf_func=$_POST["cpf_func"];


$q="select * from funcionarios where cpf_func='$cpf_func'";
$r=mysql_query($q) or die ("Erro no Acesso do BANCO. ".mysql_error());

while ($l = mysql_fetch_array($r)){
$nome_func=$l['nome_func'];

?>

<table width="76%" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="14%"><div align="right"><strong>Nome:</strong></div></td>
<td width="35%"><label>
<div align="left">
<input name="nome_func" type="text" id="nome_func" size="40" maxlength="50" value="<?php echo $nome_func; ?>"/>
</div>
</label></td>
</tr>
<?php
}
}
?>

</table>
</form>
</body>

Como o MBA disse:

[quote]Mais uma vez eu falo.
O estudo de desenvolvimento MVC vale![/quote]

Realmente vale. Todo o tipo de estudo vale! Sempre temos que aprender coisas novas!

Até eu jah comecei estudar essa tal de heredoc ^^.

---
Mas enfim, eu estava reparando no seu code aqui.
No primeiro post vc fez os dois misturados ^^. O echo e as tags php dentro dele. veja:




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq