Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mauricio lanner

[Resolvido] Usando echo no Select

Recommended Posts

Bom dia pessoal, estou precisando de uma ajudar. Criei uma tabela de relacionamento para fazer um filtro por linguas, mas estou com problemas, preciso criar um select com os dados dessa tabela, ou seja dentro do select repete os valores da tabela. Usei o seguinte codigo:

<?php
$id=$_GET['id'];
include ('include/conexao.php');
//seleciona a lingua na tabela
$sql="SELECT*FROM idioma";
$rs=mysql_query($sql) or die ("erro ao seleciona".$sql);
//define a variavel linha
$linha=mysql_fetch_array($rs);
//repete na tabela até o fim
while($linha=mysql_fetch_array($rs))
{
//Puxa os dados
$id_lingua=$linha["lingua"];
$idioma=$linha["idioma"];

?>
<body>
<form id="form1" name="form1" method="post" action="exe/cad_lingua.php">
 <table width="416" border="0" cellspacing="15">
   <tr>
     <td width="130">Idioma</td>
     <td width="270"><label>
     <select name="select" id="idioma" class="input">
      <?php echo "<option value='$id_lingua'>$idioma</option>";
	}
	?>
     </select></label></td>
   </tr>

 

Mas em vez de repetir no select esta repetindo varias vezes o select com os valores, ou seja, fica vários select em vez de um.

 

Alguém sabe a solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O While deve englobar o conteúdo das <option>

Ou seja, você vai repetir as option apenas, que no seu caso são as línguas aí

DO jeito que você fezo while vai repetir o form a tag body tudo isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso acontece por que tudo esta dentro do while

então para cada item ele vai montar todo esse HTML

 

a solução é simples basta concatenar

 

<?php
$id=$_GET['id'];
include ('include/conexao.php');
//seleciona a lingua na tabela
$sql="SELECT*FROM idioma";
$rs=mysql_query($sql) or die ("erro ao seleciona".$sql);
//define a variavel linha
$linha=mysql_fetch_array($rs);

$select = '';
//repete na tabela até o fim
while($linha=mysql_fetch_array($rs)){
$select .= "<option value='$linha["lingua"]'>$linha["idioma"]</option>";
}
?>
<body>
<form id="form1" name="form1" method="post" action="exe/cad_lingua.php">
 <table width="416" border="0" cellspacing="15">
   <tr>
     <td width="130">Idioma</td>
     <td width="270"><label>
     <select name="select" id="idioma" class="input">
      <?php echo $select ?>
     </select></label></td>
   </tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso acontece por que tudo esta dentro do while

então para cada item ele vai montar todo esse HTML

 

a solução é simples basta concatenar

 

<?php
$id=$_GET['id'];
include ('include/conexao.php');
//seleciona a lingua na tabela
$sql="SELECT*FROM idioma";
$rs=mysql_query($sql) or die ("erro ao seleciona".$sql);
//define a variavel linha
$linha=mysql_fetch_array($rs);

$select = '';
//repete na tabela até o fim
while($linha=mysql_fetch_array($rs)){
$select .= "<option value='$linha["lingua"]'>$linha["idioma"]</option>";
}
?>
<body>
<form id="form1" name="form1" method="post" action="exe/cad_lingua.php">
 <table width="416" border="0" cellspacing="15">
   <tr>
     <td width="130">Idioma</td>
     <td width="270"><label>
     <select name="select" id="idioma" class="input">
      <?php echo $select ?>
     </select></label></td>
   </tr>

 

entendi a questão, mas deu um errozinho

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\Curriculo Ativo\cadastra_lingua2.php on line 20

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou o ponto e virgula, erro meu..

 

<?php echo $select; ?>

 

e a variavel vai ficar assim

 

$select .= "<option value='{$linha["lingua"]}'>{$linha["idioma"]}</option>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

é um pouco, mas já desenvolvi muitos sites com ele e sempre funcionou.

 

serve tanto para quem quer pegar do banco de dados ou para quem prefere salvar os dados direto dentro da função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius Rangel

 

tem mais um probleminha, os valores não estão chegando na camada de processamento

(id_usuario, id_idioma, id_nivel) values ('44', '', '')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entenda, o valor não esta chegando na camada de processo, tipo, a camada 1 é essa

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" href="css/style.css" rel="stylesheet" />
<title>Untitled Document</title>
</head>
<?php
$id=$_GET['id'];
include ('include/conexao.php');
//seleciona a lingua na tabela
$sql="SELECT*FROM idioma";
$rs=mysql_query($sql) or die ("erro ao seleciona".$sql);
//define a variavel linha
$linha=mysql_fetch_array($rs);

$select = '';
//repete a tabela lingua até o fim
while($linha=mysql_fetch_array($rs)){
$select .= "<option value='{$linha["id_lingua"]}'>{$linha["idioma"]}</option>";
}
//seleciona a segunda tabela nivel
$sql="SELECT*FROM nivel_lingua";
$rs=mysql_query($sql) or die ("erro ao seleciona".$sql);
//define a variavel linha
$linha2=mysql_fetch_array($rs);

$select2 = '';
//repete a tabela lingua até o fim
while($linha2=mysql_fetch_array($rs)){
$select2 .= "<option value='{$linha2["id_nivel"]}'>{$linha2["nivel"]}</option>";
$select3 .="{$linha2["id_nivel"]}";
}
?>
<body>
<form id="form1" name="form1" method="post" action="exe/echo.php">
 <table width="416" border="0" cellspacing="15">
   <tr>
     <td width="130">Idioma</td>
     <td width="270"><label>
     <select name="select" id="id_idioma" class="input">
      <?php echo "$select";?>
     </select></label></td>
   </tr>
   <tr>
     <td>Nivel</td>
     <td><label><select name="select" id="id_nivel" class="input"/>
       <?php echo "$select2";?>
       </label></select></td>
   </tr>
   <tr>
     <td>
<INPUT TYPE="hidden" NAME="id" VALUE="<?php echo"$id";?>"></td>
     <td><label>
       <input type="submit" name="button" id="button" value="Submit" class="input2" />
     </label></td>
   </tr>
   <tr>
     <td> </td>
     <td> </td>
   </tr>
 </table>
</form>
<form action="" method="get">
 <table width="607" border="0" cellpadding="0" cellspacing="15">
   <tr>
     <td width="60"> </td>
     <td><input type="submit" name="button2" id="button2" value="Pular Etapa" class="input2" /></td>
   </tr>
 </table>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
</body>
</html>

 

essa pagina envia para essa:

 

<?php
include("../include/conexao.php");
$id=$_POST["id"];
$id_idioma=$_POST["id_idioma"];
$id_nivel=$_POST["id_nivel"];

$sql="insert usu_idioma (id_usuario, id_idioma, id_nivel)
values ('$id', '$id_idioma', '$id_nivel')";


mysql_query ($sql)or die("Probelmas de conecção".$sql);
echo"Curso superior cadastrado com sucesso";

echo"<meta http-equiv='refresh' content='2;url=http:../index.php'>";
?>

 

mas os dados não estão sendo enviados a segunda camada entende, eu fiz em duas camadas pq ainda não tive aulas de orientado a objetos.

 

na verdade os valores não estão saindo da camada 1

 

Foi mau ai man, ja descobri o erro

 

 

<?php
include("../include/conex.php");
$id=$_POST["id"];
$select=$_POST["select"];
$select2=$_POST["select2"];

$sql="insert usu_idioma (id_usuario, id_idioma, id_nivel)
values ('$id', '$select', '$select2')";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você repetiu o mesmo erro em relação aos inputs.

 

veja bem, o $_POST['algumacoisa'] não recebe o ID do input e sim do name

 

<input type="text" name="nome" id="nomeDoMeio">

 

para receber o POST é

 

$nome = $_POST['nome'];

 

o ID é apenas uma referencia para CSS, para sua folha de estilo.

 

veja bem:

 <select name="select" id="id_idioma" class="input">
      <?php echo "$select";?>
     </select></label>

 

o nome do seu select é select e não id_idioma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fica tranquilo, eu faço isso por que gosto e soma pra mim também. Inúmeras vezes fui corrigido por que o pessoal daqui tem qualidade.

 

Boa Sorte com projeto, só lembra da regra dos inputs..

 

vlww

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.