Ir para conteúdo

POWERED BY:

Arquivado

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

yes

[Resolvido] separar options

Recommended Posts

amigos, tenho um site que todos os nomes dos elementos é participante[], para que o $_POST do php receba um array

 

o problema é que como todos tem o mesmo nome, os options ficam misturados, e não seguem a ordem de cadastro..

 

existe algum modo de separar estes options!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigos, tenho um site que todos os nomes dos elementos é participante[], para que o $_POST do php receba um array

 

então tem algo estranho aqui... poste o HTML do formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>

<head>

<title>MZ Publicidade.com.br</title>

</head>

<!-- Faça o include da lib do jQuery -->

<script type="text/javascript" src="scripts/lib/jquery.js"></script>

<script type="text/javascript">

// Função única que fará a transação

function getEndereco() {

// Se o campo CEP não estiver vazio

if($.trim($("#cep").val()) != ""){

/*

Para conectar no serviço e executar o json, precisamos usar a função

getScript do jQuery, o getScript e o dataType:"jsonp" conseguem fazer o cross-domain, os outros

dataTypes não possibilitam esta interação entre domínios diferentes

Estou chamando a url do serviço passando o parâmetro "formato=javascript" e o CEP digitado no formulário

http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#cep").val()

*/

$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#cep").val(), function(){

// o getScript dá um eval no script, então é só ler!

//Se o resultado for igual a 1

if(resultadoCEP["resultado"]){

// troca o valor dos elementos

$("#rua").val(unescape(resultadoCEP["tipo_logradouro"])+": "+unescape(resultadoCEP["logradouro"]));

$("#bairro").val(unescape(resultadoCEP["bairro"]));

$("#cidade").val(unescape(resultadoCEP["cidade"]));

$("#estado").val(unescape(resultadoCEP["uf"]));

}else{

alert("Endereço não encontrado");

}

});

}

}

</script>

 

<body style="text-align: center" background="novo/fundo.jpg">

<table width="779" height="543" border="0" cellpadding="0" cellspacing="0" id="table1">

<tr>

<td width="779" height="60" bgcolor="#FFFFFF"><table width="584" height="211" border="0" cellpadding="0" cellspacing="0">

 

<tr>

<td width="153" height="18"><img src="novo/topo_superior_esquerdo.jpg" width="211" height="18"></td>

<td width="431"><img src="novo/topo_superior_direito.jpg" width="568" height="18"></td>

</tr>

<tr>

<td height="100" background="novo/fund_logo.jpg"><p align="center"><b><font face="Verdana">Logo</font></b></td>

<td background="novo/fund_slogao.jpg"><font face="Verdana"><b> Slogan</b></font></td>

 

</tr>

<tr background="novo/linha_centro_fundo.jpg">

<td height="55" colspan="2" background="novo/linha_centro_fundo.jpg"><table width="778" height="59" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="30" height="19"> </td>

<td width="358"> </td>

<td width="366" rowspan="2"><div align="right">

<table width="366" height="24" border="0" cellpadding="0" cellspacing="0">

<tr>

 

<td width="207" height="24"><p><br>

</p></td>

<td width="54"><div align="left"><img src="novo/visa.jpg" width="41" height="24"></div></td>

<td width="49"><div align="left"><img src="novo/master_car.jpg" width="39" height="24"></div></td>

<td width="46"><div align="left"><img src="novo/boleto.jpg" width="41" height="24"></div></td>

<td width="10"> </td>

</tr>

</table>

</div></td>

 

<td width="24"> </td>

</tr>

<tr>

<td height="21"> </td>

<td> </td>

<td> </td>

</tr>

<tr>

<td height="19"> </td>

 

<td><font color="#000099" face="Verdana, Arial, Helvetica, sans-serif" style="font-size: 8pt"><strong>Bom

Dia, São Paulo 12 de Maio de 2010</strong></font></td>

<td> </td>

<td> </td>

</tr>

</table></td>

</tr>

<tr>

<td height="19" colspan="2"><table width="779" height="33" border="0" cellpadding="0" cellspacing="0">

 

<tr>

<td width="20" height="33"> </td>

<td width="759"><img src="novo/passo_02.jpg" width="416" height="30"></td>

</tr>

</table></td>

</tr>

<tr>

<td height="19"> </td>

<td> </td>

 

</tr>

</table></td>

</tr>

<tr>

<td height="315" bgcolor="#FFFFFF"><form name="form2" method="post" action="teste.php">

<table width="779" height="342" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="139" height="19"> </td>

<td width="513"> </td>

 

<td width="127"> </td>

</tr>

<tr>

<td height="19"> </td>

<td><img src="novo/informacao_iniciais.jpg" width="511" height="15"></td>

<td> </td>

</tr>

<tr>

<td height="19"> </td>

 

<td> </td>

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td><table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="5%"> </td>

<td width="11%"><font face="Verdana" size="2">CPF:</font></td>

 

<td width="84%"><input name="CPF" type="text" id="CPF3" style="font-family: Verdana; font-size: 10px; border: 1px solid #000080" size="28"></td>

</tr>

</table></td>

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td> </td>

<td> </td>

 

</tr>

<tr>

<td height="19"> </td>

<td><img src="novo/cupom.jpg" width="511" height="14"></td>

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td><label for="radio"></label></td>

 

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td><table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="5%"> </td>

<td width="11%"><font face="Verdana" size="2">Cupom:</font></td>

 

<td width="84%"><input name="CPF2" type="text" id="CPF4" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="28">

<font face="Verdana" size="1">* Caso tenha algum desconto.</font></td>

</tr>

<tr>

<td> </td>

<td> </td>

<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Cupom:</strong> 25 % </font></td>

 

</tr>

<tr>

<td> </td>

<td> </td>

<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Valor

com o disconto:</strong> R$ 120,00 Reais</font></td>

</tr>

</table></td>

 

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td> </td>

<td> </td>

</tr>

<tr>

 

<!-- aqui começa o vetor-->

 

<tr>

<td height="19"> </td>

<td><img src="novo/nomenclatura.jpg" width="511" height="14"></td>

<td> </td>

</tr>

<tr>

<td> </td>

<td height="19"><table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="5%"> </td>

 

<td><table width="489" border="0" cellpadding="0" cellspacing="0">

<tr>

<td><font color="#000099" face="Verdana, Arial, Helvetica, sans-serif" style="font-size: 8pt"><strong>Nomenclatura:</strong></font></td>

<td colspan="4"><font face="Verdana">

<input name="participante[]" type="radio" id="participante[]" value="Médico"></font>

</span></font><font face="Verdana" style="font-size: 8pt">Médico</font></td><td colspan="4"><font face="Verdana">

<input name="participante[]" type="radio" id="participante[]" value="Outros Profissionais"></font>

</span></font><font face="Verdana" style="font-size: 8pt">Outros Profissionais</font></td><td colspan="4"><font face="Verdana">

<input name="participante[]" type="radio" id="participante[]" value="Estudante"></font>

 

</span></font><font face="Verdana" style="font-size: 8pt">Estudante</font></td></tr>

<tr>

<td><font color="#000099" face="Verdana, Arial, Helvetica, sans-serif" style="font-size: 8pt"><strong>Sexo:</strong></font></td>

<td colspan="4"><font face="Verdana">

<input name="participante[]" type="radio" id="participante[]" value="Feminino"></font>

</span></font><font face="Verdana" style="font-size: 8pt">Feminino</font></td><td colspan="4"><font face="Verdana">

<input name="participante[]" type="radio" id="participante[]" value="Masculino"></font>

</span></font><font face="Verdana" style="font-size: 8pt">Masculino</font></td></tr>

 

<tr>

<td><font color="#000099" face="Verdana, Arial, Helvetica, sans-serif" style="font-size: 8pt"><strong>Associado:</strong></font></td>

<td colspan="4"><font face="Verdana">

<input name="participante[]" type="radio" id="participante[]" value="ABRAN"></font>

</span></font><font face="Verdana" style="font-size: 8pt">ABRAN</font></td><td colspan="4"><font face="Verdana">

<input name="participante[]" type="radio" id="participante[]" value="AMB"></font>

</span></font><font face="Verdana" style="font-size: 8pt">AMB</font></td></tr>

</table></td>

 

</tr>

</table></td>

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td> </td>

<td> </td>

</tr>

 

<tr>

<td height="19"> </td>

<td> </td>

<td> </td>

</tr>

<!-- aqui começa o vetor-->

<tr>

<td height="19"> </td>

<td><img src="novo/nomenclatura.jpg" width="511" height="14"></td>

<td> </td>

 

</tr>

<tr>

<td> </td>

<td height="19"><table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="5%"> </td>

<td><table width="489" border="0" cellpadding="0" cellspacing="0">

<tr>

<td><font color="#000099" face="Verdana, Arial, Helvetica, sans-serif" style="font-size: 8pt"><strong>Dados:</strong></font></td>

 

</tr>

<tr>

<td height="19"><font size="2" face="Verdana"> Nome/Completo:</font></td>

<td height="19" >

<input name="participante[]" type="text" id="participante[]" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="69" onKeyUp="this.value = this.value.toUpperCase();" ></td>

</tr>

<tr>

<td height="19"><font size="2" face="Verdana"> Nome/Crachá</font></td>

<td height="19" >

<input name="participante[]" type="text" id="participante[]" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="69" onKeyUp="this.value = this.value.toUpperCase();" ></td>

 

</tr>

<tr>

<td height="19"><font size="2" face="Verdana"> CRM:</font></td>

<td height="19" >

<input name="participante[]" type="text" id="participante[]" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="10" onKeyUp="this.value = this.value.toUpperCase();" ></td>

</tr> <!-- PACOTE CEP -->

<tr>

<td height="19"><font face="Verdana" size="2">CEP:</font></td>

<td><b>

<input name="participante[]" type="text" id="cep" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="10" maxlength="8" onBlur="getEndereco()">

 

</b></td>

</tr>

<tr>

<td width="108" height="19"> <font face="Verdana" size="2">Endereço:</font></td>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<input name="participante[]" type="text" id="rua" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="52" onKeyUp="this.value = this.value.toUpperCase();"> 

<input name="participante[]" type="text" id="nro" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="6">

 

</font></td>

</tr>

<tr>

<td width="108" height="19"> <font face="Verdana" size="2">Bairro:</font></td>

<td> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<input name="participante[]" type="text" id="bairro" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="42" onKeyUp="this.value = this.value.toUpperCase();">

Compl.:

<input name="participante[]" type="text" id="complemento" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="10" onKeyUp="this.value = this.value.toUpperCase();" >

</font></td>

 

</tr>

<tr>

<td width="108" height="19"> <font face="Verdana" size="2">Cidade:</font></td>

<td> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<input name="participante[]" type="text" id="cidade" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="42" onKeyUp="this.value = this.value.toUpperCase();" >

Estado:

<input name="participante[]" type="text" id="estado" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="10" maxlength="2" onKeyUp="this.value = this.value.toUpperCase();">

</font></td>

</tr>

 

</table></td>

</tr>

</table></td>

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td> </td>

<td> </td>

 

</tr>

<tr>

<td height="19"> </td>

<td> </td>

<td> </td>

</tr> <tr>

<td height="19"> </td>

<td><img src="novo/como_soube_do_evento.jpg" width="511" height="14"></td>

<td> </td>

 

</tr>

<tr>

<td height="19"> </td>

<td> </td>

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td><table width="100%" border="0" cellpadding="0" cellspacing="0">

 

<tr>

<td width="5%"> </td>

<td><table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td><table width="488" height="38" border="0" cellpadding="0" cellspacing="0" id="table20">

<tr>

<td height="19" colspan="4"><font face="Verdana" style="font-size: 7pt">

<input name="SoubeEvento" type="checkbox" id="SoubeEvento7" value="Telemarketing">

<font size="2">Telemarketing

<input name="SoubeEvento" type="checkbox" id="SoubeEvento7" value="Site">

 

Site

<input name="SoubeEvento" type="checkbox" id="SoubeEvento7" value="E-mail">

E-mail

<input name="SoubeEvento" type="checkbox" id="SoubeEvento7" value="Mala Direta">

Mala Direta

<input name="SoubeEvento" type="checkbox" id="SoubeEvento8" value="Outros">

Outros </font></font></td>

</tr>

<tr>

<td width="88" height="19"> </td>

 

<td width="132"> </td>

<td width="78"> </td>

<td width="190"> </td>

</tr>

</table></td>

</tr>

</table></td>

</tr>

</table></td>

 

<td> </td>

</tr>

<tr>

<td height="19"> </td>

<td><div align="right">

<input type="submit" value="Próximo >>" name="B1" style="font-family: Verdana; font-size: 8pt">

</div></td>

<td> </td>

</tr>

 

</table>

</form></td>

</tr>

<tr>

<td height="54"><img border="0" src="novo/baixo_index.jpg" width="779" height="54"></td>

</tr>

</table>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá... por exemplo:

<tr>
                        <td><font color="#000099" face="Verdana, Arial, Helvetica, sans-serif" style="font-size: 8pt"><strong>Nomenclatura:</strong></font></td>
                        <td colspan="4"><font face="Verdana"> 
                                                                          <input name="participante[]" type="radio" id="participante[]" value="Médico"></font>
                                                                          </span></font><font face="Verdana" style="font-size: 8pt">Médico</font></td><td colspan="4"><font face="Verdana"> 
                                                                          <input name="participante[]" type="radio" id="participante[]" value="Outros Profissionais"></font>
                                                                          </span></font><font face="Verdana" style="font-size: 8pt">Outros Profissionais</font></td><td colspan="4"><font face="Verdana"> 
                                                                          <input name="participante[]" type="radio" id="participante[]" value="Estudante"></font>

                                                                          </span></font><font face="Verdana" style="font-size: 8pt">Estudante</font></td></tr>
                      <tr>
seria muito melhor se fosse:

<tr>
		<td><strong>Nomenclatura:</strong></td>
		<td colspan="4"><input name="nomenclatura" type="radio" value="Médico" />Médico</td>
		<td colspan="4"><input name="nomenclatura" type="radio" value="Outros Profissionais" />Outros Profissionais</td>
		<td colspan="4"><input name="nomenclatura" type="radio" value="Estudante" />Estudante</td>
	</tr>
ou:

<tr> 
                        <td height="19"><font face="Verdana" size="2">CEP:</font></td>
                        <td><b> 
                          <input name="participante[]" type="text" id="cep" style="font-family: Verdana; font-size: 10px; border: 1px solid #808080; " size="10" maxlength="8"  onblur="getEndereco()">

                          </b></td>
                      </tr>
poderia ser:

<tr>
	<td height="19">CEP:</td>
	<td><input name="cep[]" type="text" size="10" maxlength="8"  onblur="getEndereco()"></td>
</tr>
atente ao name dos inputs.. e a remoação da duplicação do atributo ID.

 

só retirei as estilizações e o <font /> para ressaltar oque fiz, e deixar mais legível o código.

 

esse formulário, deveria suportar 'multiplas inscrições' ? (várias pessoas no mesmo envio)

Compartilhar este post


Link para o post
Compartilhar em outros sites

não não amigo, é apenas 1 inscriçao por vez..o formulario ainda esta em testes, então não me interessa muito arrumar os ID's agora..

 

mas todos os campos tem que possuir o mesmo nome, me gerando um array com todas as informações contidas no formulario..

 

o problema aqui são os options, que por estarem todos com o mesmo nome, eles não respeitam ordem nenhuma.

Se eu clicar na nomenclatura médico por exemplo, e dps clicar em sexo masculino, o checked sai do médico e vai para o masculino, e assim em todos os options.

 

os campos text estão normais

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente pelo motivo que citei.

 

os IDs e os NAMEs estão incorretos ^_^

 

arrume como eu disse, e tudo funcionará.

Receber tudo com um único array assim, me parece 'coisa de preguiçoso'. Dê um nome exclusivo para cada campo, e então trabalhe melhor o lado server-side.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não não amigo..não é por que estou com preguiça, é que temos varios clientes, então para evitar ter que desenvolver uma pagina de cadastro para cada cliente, estou desenvolvendo um sistema que cada cliente tem uma configuração, a pagina recebe o nome do cliente e mostra só a configuração daquele cliente, tudo em uma pagina só, então para facilicar o cadastro, criei uma função universal que recebe:

 

function add($tabela, $arraycomosdados, $outro_array_com_os_campos_da_tabela_do_cliente);

 

vou arrumar e ver oq da..

 

obrigado pela atenção, jaja eu posto aqui o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo.. agora estão assim:

 

<tr>
                        <td width="91">Nomenclatura:</td>
                        <td colspan="4"><input name="participante[]" type="radio" id="nomenclatura" value="Médico">Médico</td>
                        <td colspan="4"><input name="participante[]" type="radio" id="nomenclatura" value="Outros Profissionais">Outros Profissionais</td>      <td colspan="4"><input name="participante[]" type="radio" id="nomenclatura" value="Estudante">Estudante</td>
</tr>

os os ID respectivos corretos, mas nada mudou, não tem como sem mudar o nome amigo?!, realmente o sistema esta baseado neste array, por isso não posso mudar o name

Compartilhar este post


Link para o post
Compartilhar em outros sites

continua errado amigo, o correto:

<tr>
      <td width="91">Nomenclatura:</td>
      <td colspan="4"><input name="nomenclatura" type="radio" value="Médico">Médico</td>
      <td colspan="4"><input name="nomenclatura" type="radio" value="Outros Profissionais">Outros Profissionais</td>
      <td colspan="4"><input name="nomenclatura" type="radio" value="Estudante">Estudante</td>
</tr>
agora, para resolver a questão, de separar um grupo de radios de outro grupo de rádios, usando javascript, e com essa marcação HTML no minimo estranha, me parece uma baita gambiarra.

 

e nem será possível, de se fazer com inputs radio, se não puder separar o name de cada grupo, e vale lembrar, que ao separar um grupo de radios de outro, pelo atributo name, o teu esquema deixará de funcionar.

 

A gambiarra, que 'daria certo', seria não usar radios, mas sim checkboxs, ai você criaria uma função, para fazer grupos de checkboxs..

permitindo a seleção de um unico elemento de cada grupo, e fazendo cada grupo individual entre si.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim sim, agora você entendeu..

 

é que realmente eu não queria usar esta pog, pq se alguem ver isso, sacará que é uma POG das antigas ainda..mas realmente não da pra muda os NAME dos options, pois como disse a function pra add é universal e se eu fizer uma rotina que pegue todos os dados e organize no array pra eu manda pra function, vai se uma POG mais demorada dq usar o checkbox..

 

 

obrigado cara..

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara... pensei numa solução perfeita pra ti..

faça um foreach(), apartir do próprio array do $_POST !! lógico!

 

você não precisa criar outro array, só para isso.

Assim você consegue deixar o name dos campos 'normal', da forma correta, e não estraga o esquema automático dos teus forms..

seria algo como:

foreach( $_POST AS $key=>$value )
{
  //implementa a rotina aqui
}
^_^

 

simples, e resolve!

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, fiz algo parecido com isso:

 

coloquei os NAME dos inputs com o mesmo nome deles no banco, esta informação esta nesta matriz

 

Array

(

[0] => nomenclatura

[1] => sexo

[2] => associado

[3] => nome

[4] => nomecracha

[5] => crm

[6] => cep

[7] => rua

[8] => nro

[9] => bairro

[10] => complemento

[11] => cidade

[12] => estado

[13] => ddd

[14] => celular

[15] => telcom

[16] => telres

[17] => email

[18] => cpf

[19] => como

)

 

 

dai veio a rotina:

 

for ($a=0;$a<sizeof($array);$a++)
{
	$dados[] = $_POST[$array[$a]];
}

daonde me gera todos os dados do post nesta variavel $dados.

 

dai

 

insert_request('teste', $dados, $array);

e me retornou

 

INSERT INTO teste (nomenclatura,sexo,associado,nome,nomecracha,crm,cep,rua,nro,bairro,complemento,cidade,estado,ddd,celular,telcom,telres,email,cpf,como) VALUES ('Médico','Feminino','ABRAN','TTt','Tt','TTT','15807000','Rua: Antônio Girol','tt','Parque Glória','TT','Catanduva','SP','tt','ttt','ttt','ttt','Tt','TTT','Site')

e ainda tenho os options organizados!

 

HAUhauHAauHAHAa

<tr>
      <td width="91">Nomenclatura:</td>
      <td colspan="4"><input name="nomenclatura" type="radio" value="Médico">Médico</td>
      <td colspan="4"><input name="nomenclatura" type="radio" value="Outros Profissionais">Outros Profissionais</td>
      <td colspan="4"><input name="nomenclatura" type="radio" value="Estudante">Estudante</td>
</tr>
<tr>
      <td width="91">Sexo:</td>
      <td colspan="4"><input name="sexo" type="radio" value="Médico">Masculino</td>
      <td colspan="4"><input name="sexo" type="radio" value="Outros Profissionais">Feminino</td>
</tr>

acredito que mais facil que isso, impossivel. se quizer complementar aceito sugestões

 

obrigado caro!

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.