Ir para conteúdo

POWERED BY:

Arquivado

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

Chirlison

Preencher radio buttons dinâmicamente com dados vindos do banco.

Recommended Posts

Bom dia a todos!

 

Pessoal, tenho vários radio buttons no qual o nome deles serão preenchidos dinâmicamente com dados vindos do banco,

ou seja, não saberei qual o nome de cada um deles para poder fazer um post e enviar os dados para o banco de dados.

 

Ao selecionar um radio button por exemplo com o nome (1) e com o valor 25, preciso

passar essa informação para outra página PHP que vai gravar no

banco de dados .

 

Alguém sabe me dizer como eu poderia fazer este processo?

Desde já, muito obrigado a todos!

Vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em radio buttons você só pode selecionar um, utilize um único nome para cada grupo de radio buttons

 

<input type="radio" name="nome" value="xxx" /> XXX
<input type="radio" name="nome" value="yyy" /> YYY 
<input type="radio" name="nome" value="zzz" /> ZZZ

 

Se for checkbox utilize um nome do tipo array

 

<input type="checkbox" name="nome[]" value="xxx" /> XXX
<input type="checkbox" name="nome[]" value="yyy" /> YYY
<input type="checkbox" name="nome[]" value="zzz" /> ZZZ

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem mas você define o radio button da seguinte maneira:

 

<input type="radio" name="1" value="25" />

 

Ai quando o usuário enviar os dados, você obtém os valores pela variável $_POST['1'], que no caso será igual a 25

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wesley David e Renan, muito obrigado pela ajuda.

Mas o meu problema é o seguinte:

Na área restrita do site eu cadastro vários tipos de salgados.

Por exemplo:

Coxinha

Empada

Kibe

Ná página das encomendas aparecem os salgados que foram cadastrados dinamicamente, ou seja nao sei quantos salgados irão aparecer.

Ex: Ná pagina de encomendas está o seguinte código

<?php 
include "config/config.php";
$busca=mysql_query("SELECT * FROM salgados ORDER BY id ASC");
               	if(!mysql_num_rows($busca)){ 
               	echo 'Nenhum dado cadastrado na base de dados';
               	}else{
               	while($ver=mysql_fetch_row($busca)){
                        	$id=$ver[0];
				     	$nome=$ver[1];	


?>

<form action="enviar_pedido_de_encomenda.php method="post" name="Form">         	

<p class="texto" align="left">
<table width="100%" border="0" class="texto">
 <tr>
<td align="left" valign="top">
<div style="float:left; max-width:360px;"><label>Salgado: <strong><?php echo $nome;?></strong></label></div> 
</td>
<td align="right" valign="top">
<div style="float:right; width:50px;"><label>100</label><input name="<?php echo $id;?>" type="radio" value="100" /></div>
<div style="float:right; width:50px;"><label>75</label><input name="<?php echo $id;?>" type="radio" value="75" /></div>
<div style="float:right; width:50px;"><label>50</label><input name="<?php echo $id;?>" type="radio" value="50" /></div>
<div style="float:right; width:50px;"><label>25</label><input name="<?php echo $id;?>" type="radio" value="25" /></div>
</td>
 </tr>
</table>
</p>

<?php }}?>

 

O que estou querendo fazer e não estou conseguindo: Pegar os inputs que foram selecionados e gravar os dados no banco de dados.

 

Vejam a imagem do formulário:

imagem.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não fecho o action ali no form action="enviar_pedido_de_encomenda.php"

 

O código está completo ai?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize um mesmo nome para todos os radios buttons pois você irá selecionar apenas um, e após selecionado ele irá lhe informar o valor do item selecionado

 


<form action="enviar_pedido_de_encomenda.php" method="post" name="Form">                         

<p class="texto" align="left">
<table width="100%" border="0" class="texto">
 <tr>
       <td align="left" valign="top">
       <div style="float:left; max-width:360px;"><label>Salgado: <strong><?php echo $nome;?></strong></label></div> 
       </td>
       <td align="right" valign="top">
       <div style="float:right; width:50px;"><label>100</label><input name="salgado" type="radio" value="100" /></div>
       <div style="float:right; width:50px;"><label>75</label><input name="salgado" type="radio" value="75" /></div>
       <div style="float:right; width:50px;"><label>50</label><input name="salgado" type="radio" value="50" /></div>
       <div style="float:right; width:50px;"><label>25</label><input name="salgado" type="radio" value="25" /></div>
       </td>
 </tr>
</table>
</p>
<input type="submit" value="enviar" class="botao" />
       <br /><br />
 </form>  




/* Quando for selecionar o salgado faça assim e ele irá te retornar o salgado selecionado */

echo $_POST['salgado'];

 

 

Depois que vi que você editou a resposta: Já que você quer selecionar mais de um input utilize checkbox em vez de radio button

 

 


<form action="enviar_pedido_de_encomenda.php" method="post" name="Form">                         

<p class="texto" align="left">
<table width="100%" border="0" class="texto">
 <tr>
       <td align="left" valign="top">
       <div style="float:left; max-width:360px;"><label>Salgado: <strong><?php echo $nome;?></strong></label></div> 
       </td>
       <td align="right" valign="top">
       <div style="float:right; width:50px;"><label>100</label><input name="salgado[]" type="checkbox" value="100" /></div>
       <div style="float:right; width:50px;"><label>75</label><input name="salgado[]" type="checkbox" value="75" /></div>
       <div style="float:right; width:50px;"><label>50</label><input name="salgado[]" type="checkbox" value="50" /></div>
       <div style="float:right; width:50px;"><label>25</label><input name="salgado[]" type="checkbox" value="25" /></div>
       </td>
 </tr>
</table>
</p>
<input type="submit" value="enviar" class="botao" />
       <br /><br />
 </form>  




/* Quando for selecionar o salgado faça assim e ele irá te retornar os salgado selecionados */

<?php 

foreach($_POST['salgado'] as $salgado)
  echo $salgado;


?>


Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não fecho o action ali no form action="enviar_pedido_de_encomenda.php"

 

O código está completo ai?

Está sim.

Na hora de postar eu copiei o código e esqueci de fechar o action.

<form action="enviar_pedido_de_encomenda.php?opcao=salgados" method="post" name="Form">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Chirlison, o usuário obrigatoriamente seleciona uma quantidade de cada salgado ou seleciona apenas os que ele quer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Possível solução para você.

 

mudei o local do while pois do jeito que você postou ele estava repetindo 3 <form>

 

<form action="" method="post" name="Form" enctype="multipart/form-data">     

$busca=mysql_query("SELECT * FROM salgados ORDER BY id ASC");
		if(!mysql_num_rows($busca)){ 
			echo 'Nenhum dado cadastrado na base de dados';
		}else{
			while($ver=mysql_fetch_row($busca)){
				$id=$ver[0];
				$nome=$ver[1];  

?>

 

e antes do <input> que envia os dados

 

</p><?php }?>

 

e o código para receber os valores do formulário

if(isset($_POST['cadastrar']) && $_POST['cadastrar'] == 'Enviar'){

	foreach($_POST as $campo=>$value){

		echo 'Campo: '.$campo.'
Value: '.$value.'
';
	}

}//else

}

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renan, o usuário seleciona apenas os salgados que ele quer e a quantidade que ele quer.

 

Ex: Ele pode querer apenas 25 coxinhas e 50 empadas e nenhum outro salgado.

 

Possível solução para você.

 

mudei o local do while pois do jeito que você postou ele estava repetindo 3 <form>

 

<form action="" method="post" name="Form" enctype="multipart/form-data"> 	

$busca=mysql_query("SELECT * FROM salgados ORDER BY id ASC");
		if(!mysql_num_rows($busca)){ 
			echo 'Nenhum dado cadastrado na base de dados';
		}else{
			while($ver=mysql_fetch_row($busca)){
				$id=$ver[0];
				$nome=$ver[1];  

?>

 

e antes do <input> que envia os dados

 

</p><?php }?>

 

e o código para receber os valores do formulário

if(isset($_POST['cadastrar']) && $_POST['cadastrar'] == 'Enviar'){

	foreach($_POST as $campo=>$value){

		echo 'Campo: '.$campo.'
Value: '.$value.'
';
	}

}//else

}

 

 

 

 

Hiago Drigo, não posso mudar o local do while senão o usuário terá que preencher o formulário para cada tipo de salgado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renan, o usuário seleciona apenas os salgados que ele quer e a quantidade que ele quer.

 

Ex: Ele pode querer apenas 25 coxinhas e 50 empadas e nenhum outro salgado.

 

 

 

Hiago Drigo, não posso mudar o local do while senão o usuário terá que preencher o formulário para cada tipo de salgado.

 

Acho que você não entendeu, eu mudei o local do while para que não repetisse o form,

para cada salgado ele vai fazer uma tabela, única coisa que não vai repetir vai ser o form,

fiz aqui o script para que você possa extrair os dados marcados e já montando uma sql com eles.

caso tenha alguma dúvida só perguntar. grin.gif

 

if(isset($_POST['cadastrar']) && $_POST['cadastrar'] == 'Enviar'){

	$dados = $_POST;

	array_pop($dados);//limpa último elemento do array que nesse caso vai ser o botão submit

	$arrCampo = array_keys($dados);
	$arrValores = array_values($dados);
	$numCampo = count($arrCampo);
	$numValores = count($arrValores);

	$tabela = "Encomendas";

	if($numCampo == $numValores){
			$SQL = "INSERT INTO $tabela (";

			foreach($arrCampo as $campo){
				$SQL .= "$campo, ";
			}

			$SQL = substr_replace($SQL, ")", -2, 1);//tira a última , e substitui por ) 
			$SQL .= "VALUES(";
			foreach($arrValores as $valores){
				$SQL .= "$valores, ";
			}

			$SQL = substr_replace($SQL, ")", -2, 1);//tira a última , e substitui por )

			echo $SQL;

	}


}

 

Aah, esqueci de falar, mudei o enctype do form e tirei o action,

Se estiver com dificuldades posso mandar o script completo

para você testar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hiago Drigo, rapaz meu form está assim e quando clico no botão para enviar para o código que você postou, mas não imprime nada não.

Não sei o que pode estar ocorrendo de errado.

 

<form action="enviar_pedido_de_encomenda.php" method="post" name="Form"> 			

<p class="texto" align="left">
<table width="100%" border="0" class="texto">
 <tr>
<td align="left" valign="top">
<div style="float:left; max-width:360px;"><label>Salgado: <strong><?php echo $nome;?></strong></label></div> 
</td>
<td align="right" valign="top">
<div style="float:right; width:50px;"><label>100</label><input name="<?php echo $id;?>" type="radio" value="100" /></div>
<div style="float:right; width:50px;"><label>75</label><input name="<?php echo $id;?>" type="radio" value="75" /></div>
<div style="float:right; width:50px;"><label>50</label><input name="<?php echo $id;?>" type="radio" value="50" /></div>
<div style="float:right; width:50px;"><label>25</label><input name="<?php echo $id;?>" type="radio" value="25" /></div>
</td>
 </tr>
</table>
</p>
<?php }}?>

<p> </p>
<p class="texto" align="left">
Nome <input type="text" name="nome" size="20" class="texto" /> 
 E-mail <input type="text" name="email" size="20"  class="texto" />
 Telefone 
 <input type="text" name="telefone" size="10"  class="texto" onkeypress="formatar(this, '## ####-####')" maxlength="12" /><i>com ddd</i>
</p>

<p class="texto" align="left">
 Local <input type="text" name="local" size="20"  class="texto" />
    Data <input type="text" size="7" readonly name="theDate" class="texto" ><input type="button" value="Calendário" onclick="displayCalendar(document.forms[0].theDate,'dd/mm/yyyy',this)" class="texto">
</p>

<p class="texto" align="left">
Hora de Início <input name="horario_inicio" type="text" size="3" maxlength="5" onkeypress="valida_horas(this);"  class="texto" >
  Hora de Término <input name="horario_termino" type="text" size="3" maxlength="5" onkeypress="valida_horas(this);"  class="texto" >
  Quantidade de Pessoas <input type="text" name="quantidade_de_pessoas" size="5" class="texto"  />
</p>

<br />


 	<input type="submit" value="enviar" class="botao" />
	<br /><br />
 </form> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
                                                     include "config/config.php";
?>

 

<form action="" method="post" name="Form" enctype="multipart/form-data">

 

<?php $busca=mysql_query("SELECT * FROM salgados ORDER BY id ASC");
		if(!mysql_num_rows($busca)){ 
			echo 'Nenhum dado cadastrado na base de dados';
		}else{
			while($ver=mysql_fetch_row($busca)){
				$id=$ver[0];
				$nome=$ver[1];  

?>

 

 

<p class="texto" align="left">

<table width="100%" border="0" class="texto">

<tr>

<td align="left" valign="top">

<div style="float:left; max-width:360px;"><label>Salgado: <strong><?php echo $nome;?></strong></label></div>

</td>

<td align="right" valign="top">

<div style="float:right; width:50px;"><label>100</label><input name="<?php echo $id;?>" type="radio" value="100" /></div>

<div style="float:right; width:50px;"><label>75</label><input name="<?php echo $id;?>" type="radio" value="75" /></div>

<div style="float:right; width:50px;"><label>50</label><input name="<?php echo $id;?>" type="radio" value="50" /></div>

<div style="float:right; width:50px;"><label>25</label><input name="<?php echo $id;?>" type="radio" value="25" /></div>

</td>

</tr>

</table>

</p>

 

<?php }?>

 

 

 

<input type="submit" name="cadastrar" value="Enviar" class="botao" />

<br /><br />

</form>

 

<?php
if(isset($_POST['cadastrar']) && $_POST['cadastrar'] == 'Enviar'){
	if(count($_POST) > 1){		
		$dados = $_POST;		
		array_pop($dados);

		$arrCampo = array_keys($dados);
		$arrValores = array_values($dados);
		$numCampo = count($arrCampo);
		$numValores = count($arrValores);

		$tabela = "Encomendas";

		if($numCampo == $numValores){
				$SQL = "INSERT INTO $tabela (";

				foreach($arrCampo as $campo){
					$SQL .= "$campo, ";
				}

				$SQL = substr_replace($SQL, ")", -2, 1);
				$SQL .= "VALUES(";
				foreach($arrValores as $valores){
					$SQL .= "$valores, ";
				}

				$SQL = substr_replace($SQL, ")", -2, 1);

				echo $SQL;

		}
	}//if array pop
	else{
		echo '<script>alert("Não marcou nenhuma opção, marque ao menos uma para fazer a encomenda!")';
		echo '<script>history.back()';
	}


}

}
?>

 

 

difícil postar em code :x mas tente ai

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hiago Drigo, está funcionando, só não consigo executar o sql que está dentro da variavel $SQL.

 

Bom o SQL está normal, porém ele está enviando para a tabela encomendas que eu criei pois não sei como é a sua

e no lugar dos nomes do produto está indo 1,2,3,4(id do produto, kibe, pastel, etc) como nome de campo

Assim no seu banco de dados teria que ter uma tabela com o nome de Encomendas

Com 3 campos, 1º para id, 2º para nome do produto, 3º para quantidade.

Você pode traduzir os 1,2,3 para nome antes de inserir ou depois na hora de consultar.

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.