Ir para conteúdo

POWERED BY:

Arquivado

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

Guilherme Oderdenge

Seleção de números

Recommended Posts

Salve!

Cá estou eu novamente para perguntar!

 

Estou fazendo um formulário de cadastro para um sorteio, o membro pode escolher de 1 à 15 números, gostaria que, ao usuário escolher 1 número, exemplo: o 3, automáticamente desaparecesse da lista.

 

Ah, e só pudesse escolher 1 número por IP.

 

E então, alguém pode me ajudar?

 

O script do option que estou usando é este:

 

<select name="numeros">
<option value="1">1
<option value="2">2
<option value="3">3
<option value="4">4
<option value="5">5
<option value="6">6
<option value="7">7
<option value="8">8
<option value="9">9
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
</select>

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é um select.. ele não vai conseguir escolher mais de uma opção mesmo..

e para desparecer um valor ao selecionar outro, você vai precisar de Javascript.. mas não vi o porque disso.. já que para escolher o 3 depois de escolher o 1.. ele vai precisar "deixar de escolher o 1"... :lol:

 

 

feche os options:

<option value="1">1</option>
<option value="2">2</option>

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, você não entendeu.

Assim, quando eu abrisse a página do formulário eu escolhesse o número 3 e depois fechasse e abrisse de novo, poderia escolher outro número, por exemplo: 10, ou seja, através disso o membro poderia ter vantagem.

 

Msa então, não é possível mesmo fazer um número sumir ao escolhe-lo? Não quero ficar atualizando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente...

 

<select name="numeros" size="1" multiple="multiple">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

Selecione um, pressione ctrl e saia selecionando...

Obs: desculpa postei em cima junto contigo, fui pelo que o william postou hehe..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Skyo!

Pelo que entendi, a função do multiple baseia-se em 1 número de cada vez né?

Mas isso não seria por usuário? Queria num todo. Se 15 usuários escolheram os 15 números, não de mais para escolher!

 

Desde já,

grato a ambos.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer que para um cliente que escolha determinado número, para outro cliente isso desapareça?

Usando códigos client-side apenas não tem como.. vai ter que fazer alguma interação ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim, quando eu abrisse a página do formulário eu escolhesse o número 3 e depois fechasse e abrisse de novo, poderia escolher outro número, por exemplo: 10, ou seja, através disso o membro poderia ter vantagem.

O usuário faz login no teu sistema para poder escolher o número?

grave o ip dele se não fizer login

ou grave o login dele qndo ele votar.. ai antes de abrir o formulário para escolher, você olha se ele já não fez isso.

Msa então, não é possível mesmo fazer um número sumir ao escolhe-lo? Não quero ficar atualizando...

tem como explicar melhor isso?

o cara vai lá.. seleciona um número no select.. e o outro q num tem nada a ver some? antes dele dar o submit ? por quê? \o/

 

Se for sumir depois, tem como fazer com php.. se for ao escolher.. e se ele escolher errado, e quiser mudar ? já q ainda não enviou, ele não poderia querer trocar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte, o que eu quero é básicamente isso:

 

Sou o GILBERTO (exemplo), vou na página do sorteio, preencho o formulário, seleciono o número 14.

 

Ok, agora o Lucas vai na página do sorteio, preenche o formulário e quando ele vai ver os números, vê que o 14 não está mais lá pois já foi escolhido, então, ele escolhe o 6.

 

Mas agora, o Pablo vai na página do sorteio, preenche o formulário e quando ele vai ver os números, vê que o 14 e o 6 não estão mais lá, pois já foram escolhidos, então ele escolhe o 11. Mas o Pablo é um usuário mal intencionado e quer se dar bem no sorteio, ele vai lá, preenche o formulário outra vez e escolhe o número 10. Mas infelizmente o IP do usuário Pablo já selecionou um número, logo, não poderá selecionar novamente enquanto o seu IP permanecer o mesmo.

 

OBS: Não precisa ser usuário para preencher o formulário;

OBS 2: Todos os dados do formulário vão para o meu e-mail.

 

 

Desde já,

grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você teria que gravar isso em algum lugar, pode ser txt mesmo...

O script teria que:

1) capturar o IP e o número do formulário;

2) abrir o arquivo IPs.txt e verificar se o IP já está la;

3) se o IP estiver parar o script e dizer que ele já participou;

4) caso ele não tenha participado você faz a mesma coisa mas com o número, verifica no Numeros.txt se o número consta;

5) caso o número consta, dizer que o número já foi selecionado e parar o script;

6) caso o número não consta, gravar em ambos os txt (IPs e Numeros) o IP e número escolhido, respectivamente e enviar via email.

 

Essa seria uma "lógica" do sistema.

Dicas: você pode gravar em txt os dados separando-os por "," e tratando-os com explode, arrays OU simplesmente strpos para fazer a checagem.

http://br.php.net/file_get_contents

http://br.php.net/manual/pt_BR/function.fi...ut-contents.php

http://br.php.net/manual/pt_BR/function.explode.php

http://br.php.net/manual/pt_BR/function.strpos.php

 

Espero ter "mastigado" só falta produzir e engolir =).

Ah e para gerar o menu de números você poderia fazer outro PHP que checa (igual disse acima) se o número consta no arquivo Numeros.txt

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma coisa, IP não é um meio confiável de saber quem é a pessoa, ele pode simplesmente usar um proxy... faça com que ele se registre. Como proteção adicional você até pode gravar o IP dele, mas não como proteção primária.

Pra fazer os números saírem da lista você vai precisar usar algo server-side, por ex, se você não quiser usar BDs, crie um arquivo txt com algo como:

"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,"

leia os conteúdos do arquivo e use explode.

 

Quando for salvar a opção de alguém, leia os conteúdos do arquivo, use algo como:

if(str_irreplace($_POST['n'].',', '', $txt)){
	$txt = str_irreplace($_POST['n'].',', '', $txt);
}else if(str_irreplace($_POST['n'], '', $txt)){
	$txt = str_irreplace($_POST['n'], '', $txt);
}else{
	echo "Número não disponível";
	exit();
}
Depois escreva o novo valor no arquivo.

 

[off-topic]Qual a tag que eu uso pra criar oma seção de PHP com código de cores e etc?

Compartilhar este post


Link para o post
Compartilhar em outros sites

:o aahhh sim.. ops ^^

bom.. não sei =X

 

não sei quais BBcode esse fórum suporta... e tem muito tempo q num vejo ninguém (nem mesmo moderador), usando outra q não seja a [ code ]

 

@edit vlw Skyo eu num tinha entendido :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele quis dizer o CODE aqui do fórum mas voltado para PHP com exibição de cores para funções e tags dentro dele.

$_SESSION não seria ideal para o caso pois podem ser perdidas por pequenas variações, alem do que, manipulando txt o aprendizado fica mais rico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
foreach ( $_POST['var'] as $var ) {
   echo 'tal coisa'.$var;
}
?>
<title>Titulo</title>
</head>

Está desativado o BBcode para php... =(

o de HTML male má, faz alguma coisa..

[css]body { background: url('bg.png') no-repeat; }[/css]

body { background: url('bg.png') no-repeat; }

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.