Ir para conteúdo
Fórum Script Brasil
  • 0

javascript + checkbox e PHP


Marcos Geam

Pergunta

Galera estou com um porém que envolve php mais creio vou precisar de javascript, vamos lá vou tentar explicar;

tem uma pagina que me retorna os seguintes valores no array vindas do banco mysql :

Servico --------- Pontos necessarios ------------ Resgatar?

- Balanceamento -- 10 ------------ [/] <-- (isto é um checkbox do form marcado)

- Troca de oleo -- 20 ------------ [/]

- Regulagem -- 10 ------------ []

- Total Marcados: 30

bem o porém é o seguinte o valor do checkbox tem que ser o nome do servico, porque vou precisar enviar os serviços marcados para o banco, ou seja será um array - servico[], dpois uso o "implode" para inserir no banco os servicos marcados.

o que preciso é que ao marcar algum checkbox ele automaticamente já faça a soma na variavel abaixo: Total Marcados (como no exemplo acima).

porque dpois vou pegar este total e enviar para o banco junto com o array dos servicos, porem somente os marcados.

- tinha feito com o checkbox assumindo o valor de pontos necessarios e dpois somava, isto da certo, mais quando preciso enviar o array com o nome do servico não teria como.

se fiz entender? obrigado aos retornos que fizerem! abçs!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Isso deve ajudar:

<script>
function ajuda(op) {
    var objCheckBox = document.forms["help"].elements["servico"];
    var total = document.forms["help"].elements["total"];
    var op1 = 10;
    var op2 = 20;

    if (op == "balanceamento") {
        if (objCheckBox[0].checked) {
            total.value = parseInt(op1) + parseInt(total.value);
        } else {
            total.value = parseInt(total.value) - parseInt(op1);
        }
    } else if (op == "trocaoleo") {
        if (objCheckBox[1].checked) {
            total.value = parseInt(op2) + parseInt(total.value);
        } else {
            total.value = parseInt(total.value) - parseInt(op2);
        }
    } else if (op == "regulagem") {
        if (objCheckBox[2].checked) {
            total.value = parseInt(op1) + parseInt(total.value);
        } else {
            total.value = parseInt(total.value) - parseInt(op1);
        }
    }
}
</script>

<form name="help">
<input type="checkbox" name="servico" value="balanceamento" onclick="ajuda(this.value);">Balanceamento<br>
<input type="checkbox" name="servico" value="trocaoleo" onclick="ajuda(this.value);">Troca de oleo<br>
<input type="checkbox" name="servico" value="regulagem" onclick="ajuda(this.value);">Regulagem<br>
Total Marcado: <input type="input" name="total" value="0">
</form>

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, seria exatamente isto, testei a funcao aqui e é isto mesmo... só tem um porem, como havia falado os dados são provinientes de um bando de dados como seria pra ao ives de colocar os valores os valores serem variaveis, vou colocar abaixo +- como acho q é, me ajuda ai;

no caso a funcao precisaria puxar as variaveis de uma tabela servicos: a funcao então ficaria assim, exemplo simplificado;

<script>

function ajuda(op) {

var objCheckBox = document.forms["help"].elements["servico"];

var total = document.forms["help"].elements["total"];

var op1 = $pts['pts_servico']; // no caso aqui puxaria o valor do servico dentro deste array

if (op == "$servico['descricao_servico'];") { // e aqui ele puxaria o nome do servico

if (objCheckBox[0].checked) {

total.value = parseInt(op1) + parseInt(total.value);

} else {

total.value = parseInt(total.value) - parseInt(op1);

}

} else if (op == "trocaoleo") {

if (objCheckBox[1].checked) {

total.value = parseInt(op2) + parseInt(total.value);

} else {

total.value = parseInt(total.value) - parseInt(op2);

}

} else if (op == "regulagem") {

if (objCheckBox[2].checked) {

total.value = parseInt(op1) + parseInt(total.value);

} else {

total.value = parseInt(total.value) - parseInt(op1);

}

o form no caso só teria um checkbox, porem como estaria dentro de um array do php seria um para cada resultado apresentado:

<form name=help">

<input type="checkbox" name="servico" value="$servico['descricao_servico];" onclick="ajuda(this.value);">Balanceamento<br>

Total Marcado: <input type="input" name="total" value="0">

</form>

seria mais ou menos isto? se tiver cometido alguma falha grave desculpa aiws ainda estou iniciando em javascript c php, vlw! abracos!

Link para o comentário
Compartilhar em outros sites

  • 0

Ajudem aí... dei uma mudada na funcao sugerida pelo Henrique e até que ficou +- como queria, porém quando marco a opção ele só responde com o valor da 1a opcao, ou seja se tem o campo (freios - 10 [/]) e marco o checkbox ele soma no total o valor apenas do primeiro registro os outros checkbox ele não soma e nem responde o valor; formula abaixo;

<?php require_once('../Connections/conexao.php');

//Seleciona e exibe os dados da tabela mysql

mysql_select_db($database_conexao, $conexao);

$query_servicos = "SELECT * FROM tb_servicos";

$servicos = mysql_query($query_servicos, $conexao) or die(mysql_error());

$row_servicos = mysql_fetch_assoc($servicos);

$totalRows_servicos = mysql_num_rows($servicos);

?>

<form name=help">

<script>

function ajuda(op) {

var objCheckBox = document.forms["help].elements["servico"];

var total = document.forms["help"].elements["total"];

if (op == "<?php echo $row_servicos['servico']; ?>") {

if (objCheckBox[0].checked) {

total.value = parseInt(<?php echo $row_servicos['pt_necessario']; ?>) + parseInt(total.value);

} else {

total.value = parseInt(total.value) - parseInt(<?php echo $row_servicos['pt_necessario']; ?>);

}

}

}

</script>

<?php

//cria o laço dentro do form com os serviços e o checkbox

do { ?>

<input type=checkbox" name="servico" value="<?php echo $row_servicos['servico]; ?>" onclick="ajuda(this.value);">

<?php echo $row_servicos['servico']; ?> - <?php echo $row_servicos['pt_necessario']; ?><br />

<?php } while ($row_servicos = mysql_fetch_assoc($servicos)); ?> <br>

Total Marcado: <input type="input" name="total" value="0">

</form>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...