Jump to content


Photo

Salvar Valor Input Radio


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

#1 janick

janick

    12 Horas

  • Usuários
  • 194 posts
  • Sexo:Não informado

Posted 12/03/2008, 14:47

Olá.

Como faço para salvar o valor do input radio sendo que meu formulário é dessa forma:

Exemplo
<img src="01.jpg" />
<input type="text" name="descricao1" />
<input type="radio" name="capa[]" value="" />

<img src="02.jpg" />
 <input type="text" name="descricao2" />
 <input type="radio" name="capa[]" value="" />

<img src="03.jpg" />
 <input type="text" name="descricao3" />
 <input type="radio" name="capa[]" value="" />

O que quero fazer é identificar qual das imagens foi escolhida como capa. Tipo, 0 não é, 1 é.
E depois resgatar isso.

Valeu obrigado

#2 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 12/03/2008, 14:57

Não precisa trabalhar com arrays então.

Deixa o name como capa apenas mesmo (sem os []), e coloca todos os radios com esse mesmo nome.

Assim, não vai ser permitido selecionar mais do que 1, e quando você requisitar $_POST['capa'] terá o valor do campo que foi marcado (tens que trabalhar com o conteúdo do atributo value portanto) ;)

Edição feita por: Firehalk, 12/03/2008, 14:57.

BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#3 janick

janick

    12 Horas

  • Usuários
  • 194 posts
  • Sexo:Não informado

Posted 12/03/2008, 15:03

Mas o que está acontecendo que, se o usuário não clicar em nenhum dos itens, ele não salva nada no BD, apesar do value está igual a 0.
E se clicar só em uma das opções, todos salvam como 0.

Parece que ele só aciona o value do input radio quando eu clico uma vez, e acaba acionando logo de todos.

#4 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 12/03/2008, 15:28

Por isso que eu falei ali em cima para você colocar o nome da imagem, dentro do value ;)

Assim quando selecionar algo, vai aparecer direto ao puxar a opção com o $_POST, o nome da imagem selecionada. Se não marcar nada, não vai enviar nada, vai cadastrar no database com o valor default do campo que você definiu lá no bd.
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#5 janick

janick

    12 Horas

  • Usuários
  • 194 posts
  • Sexo:Não informado

Posted 12/03/2008, 16:05

Não entendi este lance de colocar o nome da imagem como value.

O valor default para o value de todos os 'radios' é igual a zero.

Só que estou acrescentando isso via jQuery (cada campo), e apesar de ter lá escrito no append. value='0', se eu adicionar os campos, e depois enviar (sem clicar em nenhum), ele lê o $_POST['capa'], como vazio.

Se eu clicar em um só campo, ele coloca todos com o value igual a 1.

Ao enviar, tenho uma função para processar os dados e um for para processar de todos os campos.
Dentro da função fiz isso:

if($_POST['capa'] == '') {
	$capa = 0;
}

else {
	$capa = 1;
}

não sei se deu pra explicar direito, mas é mais ou menos isso.
valeu

#6 § Kenshin §

§ Kenshin §

    I'm coming back...!

  • Usuários
  • 574 posts
  • Sexo:Masculino
  • Localidade:BA
  • Interesses:Sou fã de linguagens direcionadas para a web, como php, (x)html, xml, wml.
    Também gosto de webdesign e ultimamente tenho me dedicado mais a aprender css, mysql, javascript, ajax e actionscript.
    Trabalho com os programas Dreamweaver, Illustrator e Flash.

Posted 12/03/2008, 16:19

pode tambem adicionar a propriedade checked na figura padrao, assim, caso o usuario nao escolha nenhuma, esta figura ja fica marcada.

<img src="01.jpg" />
<input type="text" name="descricao1" />
<input type="radio" name="capa" value="1" checked />

<img src="02.jpg" />
<input type="text" name="descricao2" />
<input type="radio" name="capa" value="2" />

<img src="03.jpg" />
<input type="text" name="descricao3" />
<input type="radio" name="capa" value="3" />
vlw ^_^

Edição feita por: § Kenshin §, 12/03/2008, 16:22.

Web Developer / Web Designer / Information Architect
"Living to learn... learning to live!"
Useful links: Rules | Search

#7 DarkSign

DarkSign

    Doutor

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

Posted 12/03/2008, 16:24

lembrando, que se for XHTML estrito, deve ser

<input type="radio" name="capa" value="1" checked="checked" />

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

#8 janick

janick

    12 Horas

  • Usuários
  • 194 posts
  • Sexo:Não informado

Posted 12/03/2008, 16:29

mas para o que eu quero, o value não pode ser diferente. ele tem que começar igual a 0 por exemplo, e se clicar, ele muda, somente o clicado.
o problema é fazer o php reconhecer isso, nao to conseguindo entende?

#9 Felipe Augusto Ferreira

Felipe Augusto Ferreira

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 12/03/2008, 16:37

mas para o que eu quero, o value não pode ser diferente. ele tem que começar igual a 0 por exemplo, e se clicar, ele muda, somente o clicado.
o problema é fazer o php reconhecer isso, nao to conseguindo entende?



Cara faz o seguinte então me passa o seu form completo desdo inicio que eu arrumo e te mando com as modificações!!



Cara faz o seguinte então me passa o seu form completo desdo inicio que eu arrumo e te mando com as modificações!!

#10 janick

janick

    12 Horas

  • Usuários
  • 194 posts
  • Sexo:Não informado

Posted 12/03/2008, 16:43

o código tá um pouco grande, mas funciona da seguinte forma:

Existe um botão para acrescentar uma linha. Cada linha contem, um campo file (imagem), um texto (descricao) e um radio (para dizer se é a capa da galeria).

vai acrescentando via jQuery, assim:

$("#galeria").append("<input type='file' name='"+i+"' /><input type='text' name='descricao"+i+"' value='Descricao' /><input type=radio name='capa' value='0' /> Capa?");

quando envio,

function upload($imagem, $descricao) {
}

e o for no fim, para ler todos os campos.
está tudo ok, somente não estou conseguindo pensar nessa maneira de reconhecer qual o campo foi definido como a capa.

#11 § Kenshin §

§ Kenshin §

    I'm coming back...!

  • Usuários
  • 574 posts
  • Sexo:Masculino
  • Localidade:BA
  • Interesses:Sou fã de linguagens direcionadas para a web, como php, (x)html, xml, wml.
    Também gosto de webdesign e ultimamente tenho me dedicado mais a aprender css, mysql, javascript, ajax e actionscript.
    Trabalho com os programas Dreamweaver, Illustrator e Flash.

Posted 12/03/2008, 16:55

tudo bem, qual o valor da variavel $_POST['capa'] quando voce envia o form sem escolher?
e escolhendo alguma?

eh so usar esse valor num if.

vlw ^_^
Web Developer / Web Designer / Information Architect
"Living to learn... learning to live!"
Useful links: Rules | Search

#12 janick

janick

    12 Horas

  • Usuários
  • 194 posts
  • Sexo:Não informado

Posted 12/03/2008, 17:00

eu crio sei lá, 5 campos. e envio sem clicar em nada, o $_POST['capa'] fica vazio. ele nem lê o value '0'.

se eu clico em um desses campos, o $_POST['capa'] de todos fica igual a zero.

ai fiz um if assim,

if($_POST['capa'] == '') {
	$capa = 0;
}

else {
	$capa = 1;
}

coloquei dentro da função, quando eu nao clico em nenhum, como esta vazio, entao beleza ele salva toos como '0', mas se eu clico em um só, ele salva todos como '1'.
eu acho que o problema é porque está dentro da função, e consequentemente dentro do for.
mas nao to sabendo como resolver.

Edição feita por: janick, 12/03/2008, 17:01.


#13 Felipe Augusto Ferreira

Felipe Augusto Ferreira

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 12/03/2008, 17:06

Seguinte Cara estava dando um olhada em seu codigo e já vi o erro, vopcê tinha dito que quando postava o valor da variavel capa ficava = 0.

Faça o seguinte.

1° PASSO
pegue todos os seus radios e de o nome apenas de capa (<input type="radio" name="capa" value="">)

2° PASSO

Digamamos que vc tem3 radios.
no primeiro coloque com o value =1

(<input type="radio" name="capa" value="1">)

o segundo como
(<input type="radio" name="capa" value="2">)
e o terceiro
(<input type="radio" name="capa" value="3>)

+===================+

Caso você deseje testar poste esse form para uma pagina de teste qualquer com o seguinte codigo


<?php
$capa=$_POST['capa'];

echo "$capa";

?>


Tente fazer isso!!!

Assim vc vai ver que o radio vai postar um dos valores dos campos, entende no caso o VALUE .

se o vc escolher 1 radio o valor dele será 1 se escolher o segundo o valor será 2 e terceiro será 3.

o valor que vai no value do radio não é importante mas é bom usar caisas facei para ficar mais facil de se trabalhar!!!




A ideia do nosso amigo é logica.

basta criar um if faça um comparação caso nenhum dos radios seja clicado faça que ele selecione a primeira opção como capa padrão!!!

#14 janick

janick

    12 Horas

  • Usuários
  • 194 posts
  • Sexo:Não informado

Posted 12/03/2008, 17:07

esta lógica eu entendo, se fosse desse jeito está tranquilo mesmo,

o problema é que os meus values nao poderão ser diferente. são iguais, só muda 1 deles se eu aciona-lo.

mas valeu pelas dicas, brigadao

Edição feita por: janick, 12/03/2008, 17:08.


#15 Felipe Augusto Ferreira

Felipe Augusto Ferreira

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 12/03/2008, 17:18

Você poderia fazer o seguinte dixar criado já na pagina mesmo uns 3 radios e usar div para ocultar ai coloca Onclick no botão para inserir na mais um radio, ai sim todos teriam um valor padrão.



tenho eese div em casa, caso amanhã vc ainda não tenha resolvido isso te passo o dive pra te dar uma mão!!!!!




1 user(s) are reading this topic

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

IPB Skin By Virteq