Jump to content
Fórum Script Brasil
  • 0

javascript + checkbox e PHP


Marcos Geam

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
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.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...