[HTML] contagem de caixas de texto

Started by Kugas, February 26, 2008, 03:04:55 PM

Previous topic - Next topic

Kugas

Tenho um problema em k consiste contar ktas caixas de texto preenchi... por exemplo tenho 10 caixas de texto e so preenchi 5... e no resultado dava-me : "voce preencheu 5 caixas..."

ja tive a ver na net mas nao consegui encontrar nada... so encontrei contagem de "radio\\'s" e "checkboxes"

alguem me pode ajudar nesta situação ou se isto é possivel...

obrigado

lycosman

Isso é fácil. Dás um nome sequencial às textboxes, do tipo \\'txt_1\\', txt_2\\', etc... Depois crias um for que irá ser executado quando submetes o form, algo do tipo:

for ($i=1,$txtcount=0;$i<11;$i++)

{

$txt = ("txt_".$i);

if !($_GET[$txt]=="") $txtcount += 1;

}

echo ("Preencheu ".$txtcount." caixas.");

Isto supondo que estás a trabalhar com PHP.
Hooray for chainsaws :3


Kugas

sim tou a mexer em php...

o nome da minha caixa de texto é name="qtu<rowtemp>" a 2Ã,ª é name="qtd<rowtemp>", a 3Ã,ª é name="qtt<rowtemp>", a 4Ã,ª é name="qt4<rowtemp>" etc etc etc ate 12, estão dentro dum ciclo while ou seja nunca irão ser 12 caixinhas e preciso dessas variaveis no nome... ainda é possivel com o teu metodo no post anterior??

cgoncalves

Tens de mudar o nome da variável para algo sequencial para que depois possa entrar no ciclo do código acima indicado.

qtu, qtd, qtt, qt4 não são nomes sequenciais.

Kugas

pois... :s mas nao posso mudar... prk todo o codigo a seguir depende deste nome.... e seria um suicidio tar a mudar tudo... :|

não há outra opção... ou so mesmo essa??

se nao houver obrigado na mesma pela ajuda....

cgoncalves

Há, podes fazer o seguinte no ficheiro PHP crias variáveis sequenciais ou um array para guardar os nomes das caixas de texto.

Ex:
qtu = txt_1
qtd = txt_2
qtt = txt_3
qt4 = txt_4

Se bem que um array era bem mais correcto, mas assim também serve

ilovehentai

não precisas de dar nomes sequenciais as caixas de texto, o erro cometido ai é o facto de usarem um ciclo "for", para as super Globais tais como $_GET ou $_POST visto que são arrays deverias usar o "foreach"
bem mais prático, tipo assim:




$i = 0;



foreach($_POST as $valor){



if ($valor != ""){



 $i ++;



}



}



echo "Foram preenchidas $i caixas";

Partindo do princípio claro que o teu formulário esta com o method="post", neste caso o ciclo foreach irá percorrer todos os valores do seu array colocando temporariamente numa variável ($valor), caso ela seja diferente de nada o valor de $i é incrementado por 1.

Cumps.

Kugas

nao... ele ta em method=GET... so dps é k fica em method=POST

Kugas

eu tenho é no input um id="qt" e axo k nao serve de nada... sera k posso utilizar com isso??

lycosman

Quotenão precisas de dar nomes sequenciais as caixas de texto, o erro cometido ai é o facto de usarem um ciclo "for", para as super Globais tais como $_GET ou $_POST visto que são arrays deverias usar o "foreach"
bem mais prático, tipo assim:




$i = 0;



foreach($_POST as $valor){



if ($valor != ""){



 $i ++;



}



}



echo "Foram preenchidas $i caixas";

Partindo do princípio claro que o teu formulário esta com o method="post", neste caso o ciclo foreach irá percorrer todos os valores do seu array colocando temporariamente numa variável ($valor), caso ela seja diferente de nada o valor de $i é incrementado por 1.

Cumps.

Sim, também se pode ir por aí, mas e se por POST passarem também outros dados do form, p. e., radios e checkboxes, ou até mesmo mais textboxes, que não contam para a contagem? Isso não os vai verificar também?
Hooray for chainsaws :3


Kugas

pois eu tenho textboxes k nao é pa contar... so mesmo uns especificos