Jump to content

Formulários dinamicos e envio para a BD


onurb22
 Share

Recommended Posts

Boa noite, hoje deparei-me com um problema com formulários que nunca me tinha acontecido ( por norma só os uso para enviar aqueles e-mails de contactos).

Eu estou a criar um ficheiro( um ficheiro de orçamentos dinâmicos) com droplists e caixas de texto e sempre que é usado o evento onchange ou onclick elas actualizam uma caixa de texto automaticamente. Até aqui tudo bem. o problema está que ao usar o campo value dos formulários para passar as quantias para as contas, não consigo resgatar a informação de texto para depois inserir na BD.

Passo a mostrar trechos do código para me explicar melhor.

A função JS que calcula os campos:

<script type="text/javascript">
function calc(A,B,C,SUM) {
var tipo_encad = Number(A);
var formato = Number(document.getElementById(B).value);
var tp_capa = Number(document.getElementById( C).value);

document.getElementById(SUM).value = tipo_encad + formato + tp_capa;
</script>

Formulário:

<label>Tipo de Encadernação:</label><br/>
<select name="select1" id="op1" onchange="calc(this.value,'op2','op3','result')" >
 <option value="0">Selecione...</option>
 <option value="1">Colado</option>
 <option value="2">Espiral Metálica</option>
 <option value="3">Agrafadas</option>
</select>
<label>Formato:</label><br/>
<select name="select2" id="op2" onchange="calc(this.value,'op1','op3','result')">
 <option value="0">Selecione...</option>
 <option value="1">A4 - vertical</option>
 <option value="2">170x240mm - vertical</option>
 <option value="3">150x230mm - vertical</option>
 <option value="4">A5 - vertical</option>
 </select>
<label>Tipo de Papel:</label><br/>
<select name="select3" id="op3" onchange="calc(this.value,'op1','op2','result')">
 <option value="0">Selecione...</option>
 <option value="1">Cromocard 260 gr</option>
 <option value="2">Couche 300 gr</option>
</select>

<input type="text" value="0,00 €" name="sum" id="result" />

Agora como preciso de passar isto para a BD ou seja, foi escolhida a encadernacao tal, com a formato tal e o papel tal, nao consigo usar o $_POST senão ele vai-me retornar os valores para o calculo e não a info que eu preciso.

Edited by onurb22
Link to comment
Share on other sites

Foi erro de copy&paste eu tenho para ai 10 campos e para não encher isto de codigo só pus 3. 🙂 Obrigado à mesma pela dica, estarei sempre atento. 🙂

What?!! 😕 never mind...

---------------------------

no select só passas a quantidade ou passas a respectiva info, não podes passar duas coisas ao mesmo tempo.

podes fazer um input hidden para cada select e vais alterando o seu valor com javascript e depois recebes no php

Exemplo:

http://stackoverflow.com/questions/20032034/use-javascipt-to-set-value-of-input-tag

Edited by Devexz

Contador de calorias: caloriaspordia.com

Link to comment
Share on other sites

Obrigado 🙂

Isto realmente ajuda-me mas não há uma forma mais "dinamica" de fazer a coisa? porque se o select tiver 10 opções vou ter de fazer 10 If, e eu tenho 10 select :S

**EDIT**

Encontrei, a partir de umas pesquisas um método que me pareceu mais viável e simples.

var x = document.getElementById("id_select").selectedIndex;
var y = document.getElementById("id_select").options;
document.myform.nomecampo.value=y[x].text;

Muito obrigado.

Edited by onurb22
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.