• 0
Sign in to follow this  
carlosmandra

Checkbox / Carrinho De Compras Igual Fiat

Question

Colegas,

estou fazendo uma página simples de seleção de produtos para um amigo, e queria que funcionasse como o site da FIAT, na parte Monte seu Carro .

A página que estou mexendo é essa:

http://www.livrosvoodoo.com/site/loja_a.php

Cada revista tem um checkbox, e quero que, ao selecionar o checkbox, o valor da revista seja somado a um campo que vou colocar com Persistent Layer, pra sempre acompanhar a janela, como na página da Alienware.

Não tenho experiência grande com JS, por isso não sei quais as funções usadas. Alguém pode me ajudar?

Abraço!

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0
<script language="JavaScript">

function result(){

var a = document.formulario.um.value;

var b = document.formulario.dois.value;

var c = document.formulario.tres.value;

var d = eval(a) + eval(B) + eval©;

var e = eval(a) * eval(B) * eval©;

document.formulario.som.value = d;

document.formulario.mul.value = e;

}

</script>

<form name="formulario">

1º:<input type="text" name="um" id="umum">&nbsp;

2º:<input type="text" name="dois" id="doisdois2">&nbsp;

3º:<input type="text" name="tres" id="tretres"><br>

soma: <input type="text" name="som" id="soma">

multiplica: <input type="text" name="mul" id="multiplica"><br>

<input type="button" onclick="result()" value="Calcular">

</form>

um exemplo de calculo ae!

você tera que fazer ela somar ou subtrair no onclick do checkbox

abraços

Share this post


Link to post
Share on other sites
  • 0

Oi fercosmig,

beleza, era isso que precisava. Testei aqui e ficou assim:

<script language="JavaScript">
function result(){
var a = document.formulario.checkbox1.value;
var b = document.formulario.checkbox2.value;
var c = document.formulario.checkbox3.value;
var d = document.formulario.checkbox4.value;
var e = document.formulario.checkbox5.value;

var x = eval(a) + eval(b) + eval(c) + eval(d) + eval(e);
document.formulario.som.value = x;

}
</script>
<form name="formulario">
  <p>
    <input name="checkbox1" type="checkbox" id="checkbox1"  onClick="result()"  value="7">
7  </p>
  <p>
    <input name="checkbox2" type="checkbox" id="checkbox2"  onClick="result()" value="10">
  10</p>
  <p>
    <input name="checkbox3" type="checkbox" id="checkbox3" onClick="result()" value="11">
11  </p>
  <p>
    <input name="checkbox4" type="checkbox" id="checkbox4" onClick="result()" value="8">
8  </p>
  <p>    <input name="checkbox5" type="checkbox" id="checkbox5" onClick="result()" value="6">
6  </p>
  <p>soma: 
<input type="text" name="som" id="soma">
<br>
  </p>
</form>

Só que ao clicar em qualquer um dos checkboxes, ele já aparece a soma total (42) e depois para de atualizar. Tentei achar alguma coisa para dar o valor "0" ao checkbox quando ele não for selecionado, mas nenhum resultado.. Sabe o que pode estar errado? Valeu pela ajuda!

Share this post


Link to post
Share on other sites
  • 0

Aêêêêêê.. deu certo!!! Aí vai:

<script language="JavaScript">
function result(){
if(document.getElementById("checkbox11").checked){
var a = document.formulario.checkbox1.value;
} else {
var a = 0
}
if(document.getElementById("checkbox22").checked){
var b = document.formulario.checkbox2.value;
} else {
var b = 0
}
if(document.getElementById("checkbox33").checked){
var c = document.formulario.checkbox3.value;
} else {
var c = 0
}
if(document.getElementById("checkbox44").checked){
var d = document.formulario.checkbox4.value;
} else {
var d = 0
}
if(document.getElementById("checkbox55").checked){
var e = document.formulario.checkbox5.value;
} else {
var e = 0
}

var x = eval(a) + eval(b) + eval(c) + eval(d) + eval(e);
document.formulario.som.value = x;

}
</script>

Agora, tudo certo: ao marcar um checkbox, o valor atualiza automaticamente!!

Uma dúvida: é possível preencher o código javascript com dados do mysql via php? Exemplo, fazer um FOR para criar vars do javascript de acordo com o número de produtos no BD? Resumindo, é possível colocar código php embutido no js? Se não puder embutido, existe outra maneira?

Valeu!

Share this post


Link to post
Share on other sites
  • 0

usa =<?variavel?>

já ouvi falar que funciona de boa!

nunca testei usar variaveis do PHP/ASP no JavaScript

o contrario(variaveis do JavaScript no PHP/ASP) sei que não funciona!!!

abraços

Share this post


Link to post
Share on other sites
  • 0

Oi fercosmig,

voltei, hehehe.. estou finalizando a implementacao desse carrinho de compras. Testei o =<?variavel?> do php dentro do javascript, e funfou de boa!! Agora não to conseguindo sair daqui (tenho uma imensa dificuldade em "pensar" no loop FOR):

Esse é o script que você me ensinou e tá funcionando beleza:

<script language="JavaScript">
function result(){
if(document.getElementById("checkbox11").checked){
var a = document.formulario.checkbox1.value;
} else {
var a = 0
}
if(document.getElementById("checkbox22").checked){
var b = document.formulario.checkbox2.value;
} else {
var b = 0
}
if(document.getElementById("checkbox33").checked){
var c = document.formulario.checkbox3.value;
} else {
var c = 0
}
if(document.getElementById("checkbox44").checked){
var d = document.formulario.checkbox4.value;
} else {
var d = 0
}
if(document.getElementById("checkbox55").checked){
var e = document.formulario.checkbox5.value;
} else {
var e = 0
}

var x = eval(a) + eval(b) + eval(c) + eval(d) + eval(e);
document.formulario.som.value = x;

}
</script>
Agora, pra deixar a página dinâmica, montada de acordo com o resultado que volta do banco de dados, eu preciso fazer o seguinte:
<script language="JavaScript">
function result(){

[COLOR=red]// isso teria que ser um loop pra repetir X vezes[/COLOR]
if(document.getElementById("<? echo $row_rsProdutos['cod_prod']?>").checked){
var <? echo $row_rsProdutos['id_prod']?> = document.formulario.prod<? echo $row_rsProdutos['id_prod']?>.value;
} else {
var <? echo $row_rsProdutos['id_prod']?> = 0
}
}

//agora vem a maldita soma: como jogar o nome das var dentro dos parenteses, pois teria que ser em loop tb, certo?
var x = eval(a) + eval(b) + eval(c) + eval(d) + eval(e);
document.formulario.som.value = x;

}
</script>

ufa... e o pior é que eu preciso toda hora dessa m... de loop for, mas sempre tenho que pedir ajuda porque começo a confundir as coisas...

Abraço!

Share this post


Link to post
Share on other sites
  • 0

AAAAAAAAAAAAAAAAAAHHH!!!!!!!!

consegui!!! Só que tive que fazer a mesma consulta no bd com 3 nomes diferentes, um pro PHP e dois pro JS, mass tudo bem!!

Aí vai:

<script language="JavaScript">

function result(){
<? do { ?>

if(document.getElementById("<? echo $row_rsProdutosJ['cod_prod']?>").checked){
var a<? echo $row_rsProdutosJ['id_prod']?> = document.formLoja.prod<? echo $row_rsProdutosJ['id_prod']?>.value;
} else {
var a<? echo $row_rsProdutosJ['id_prod']?> = 0;
}
<? } while ($row_rsProdutosJ = mysql_fetch_assoc($rsProdutosJ)); ?>

var y = 0;
var x = <? do { ?> eval(a<? echo $row_rsProdutosS['id_prod']?>) + <? } while ($row_rsProdutosS = mysql_fetch_assoc($rsProdutosS)); ?> eval(y);

document.formLoja.som.value = x;

}
</script>

Valeu!!!

Share this post


Link to post
Share on other sites
  • 0

Pra quem programa em asp a coisa fica assim:

html:

<table>
<%
contdet=0
do while not rsdet.eof
%>
<tr>
  <td align="right">
    <div>
    <%=rsdet("valor")%>
    <input type="checkbox" name="val<%=contdet%>" id="val<%=contdet%>" onClick="result();" value="<%=rsdet("valor")%>" />
    </div>
  </td>
</tr>
<%
contdet=contdet+1
rsdet.movenext
loop
%>
</table>
javascript
<script language="JavaScript">
function result(){
<%
contres=0
contres2=0
while contres < contdet
%>
if(document.getElementById("val<%=contres%>").checked){
var a<%=contres%> = document.getElementById("val<%=contres%>").value;
} else {
var a<%=contres%> = 0.00;
}
<%
contres = contres + 1
wend
%>
var y = 0.00;
var x = <%
while contres2 < contdet
    response.write "parseFloat(a"&contres2&")+"
contres2 = contres2+1
wend
response.write "parseFloat(y)" &vbcrlf
%>
document.getElementById('fatura_frame').innerHTML=x;
}
</script>

<%
rsadm.close
set rsadm = nothing
%>

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this