• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skcratch

[Resolvido] - PHP Post - obter valor de input type text

6 mensagens neste tópico

Viva!

Neste momento, estou a desenvolver uma pequena aplicação com recurso a PHP e a JavaScript. A referida aplicação, possui um formulário de registo, onde o utilizador pode seleccionar um conjunto de 4 línguas distintas para os conteúdos que irão ser posteriormente disponibilizados. Para selecção do nível de compreensão da língua, estou a utilizador o controlo slider da biblioteca jQuery. No entanto, o utilizador, pode pura e simplesmente não pretender conteúdos numa determinada lingua, bastando para isso não seleccionar a língua respectiva. No entanto, eu pretendia, que caso o utilizador não seleccionasse uma determinada língua, a esta lhe fosse atribuído o valor 0.

Para isso, recorro ao evento onsubmit do formulário, para invocar a seguinte função:

function getLanguageSelectedValues() {
	  	// set language (level of comprehension) selected values; for the not selected languages, level of comprehension is set to 0

		// portuguese language
		if (!$("#cbxPortuguese").is(":checked")) {
			//set default language value
			$("input#ptLanguageCurrentValue").val(0);
		}
}

No entanto, ao contrário daquilo que pretendo, a variável ptLanguageCurrentValue nunca aparece na variável global $_POST quando o formulário é submetido.

Será que alguém me poderia dar uma ajuda?

Cumps!

:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Esse excerto de código é um pouco vago .. dá para disponibilizar mais para se perceber melhor de onde surgem esses valores?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Antes demais, peço desculpa pela falta de informação disponibilizada. A seguir é ilustrada a parte inicial do formulário:

<form name="signup" id="signup" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="javacript: getLanguageSelectedValues(); ">

A seguir, o código HTML correspondente do formulário:

<div>
<label><input type="checkbox" name="cbxPortuguese" id="cbxPortuguese" />Portuguese</label>
</div>
<div id="slider"></div>
<div id="ptLanguage" class="showHideDiv">
<div id="ptSlider"></div>
<label for="ptLanguageCurrentValue">Value:</label>
<input type="text" id="ptLanguageCurrentValue" class="languageCurrentValue" />
<br />
<input type="checkbox" name="cbxPtIsMain" id="cbxPtIsMain" />
Is your main language? 
<input type="hidden" name="ptLanguageMain" id="ptLanguageMain" value="" />
</div>

E finalmente, a função JavaScript que está a ser invocada:

function getLanguageSelectedValues() {
// set language (level of comprehension) selected values; for the not selected languages, level of comprehension is set to 0

// portuguese language
if (!$("#cbxPortuguese").is(":checked")) {
//set default language value
$("input#ptLanguageCurrentValue").val(0);
}
}

Grato desde já pela ajuda,

Cumps!

:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Pelo que percebi, quando fazes submit, o jquery vai verificar e alterar o valor do formulário. Ora, como isto é processado à "velocidade da luz", provavelmente o javascript nem chega a funcionar e o browser manda-te logo para a pagina definida no action do formulário. Para conseguires o que queres, tens de fazer algo assim :

$('form[name="signup"]').bind('submit', function(e) {
    // impede a sumbissão do form
    e.preventDefault();

    if (!$("#cbxPortuguese").is(":checked")) {
        //set default language value
        $("input#ptLanguageCurrentValue").val(0);
    }

    // termina o namoro entre o bind e o submit deste formulário, e envia-o como se nada se passa-se
    $(this).unbind('submit').submit();
});

Se não funcionar diz, escrevi isso agora à pressão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Antes demais, obrigado pela tua ajuda. Assim que puder, testo o teu código e digo alguma coisa.

Cumps!

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

A tua solução funcionou na perfeição. Muito obrigado pela ajuda.

Cumps!

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora