skcratch Posted September 8, 2009 at 09:49 PM Report Share #286135 Posted September 8, 2009 at 09:49 PM 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! 😄 Link to comment Share on other sites More sharing options...
yoda Posted September 8, 2009 at 09:52 PM Report Share #286136 Posted September 8, 2009 at 09:52 PM Boas, Esse excerto de código é um pouco vago .. dá para disponibilizar mais para se perceber melhor de onde surgem esses valores? before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
skcratch Posted September 9, 2009 at 07:43 AM Author Report Share #286199 Posted September 9, 2009 at 07:43 AM 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! 😄 Link to comment Share on other sites More sharing options...
yoda Posted September 9, 2009 at 08:40 AM Report Share #286202 Posted September 9, 2009 at 08:40 AM 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. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
skcratch Posted September 9, 2009 at 11:10 AM Author Report Share #286210 Posted September 9, 2009 at 11:10 AM Viva! Antes demais, obrigado pela tua ajuda. Assim que puder, testo o teu código e digo alguma coisa. Cumps! 🙂 Link to comment Share on other sites More sharing options...
skcratch Posted September 9, 2009 at 06:38 PM Author Report Share #286264 Posted September 9, 2009 at 06:38 PM Viva! A tua solução funcionou na perfeição. Muito obrigado pela ajuda. Cumps! 🙂 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now