onClick checkbox

Status
Niet open voor verdere reacties.

raymond88

Gebruiker
Lid geworden
24 feb 2010
Berichten
287
Ik bereken via een php script een (totaal)prijs uit. Hierbij komt eigenlijk ook nog input in van de checkboxen, indien aangevinkt. Dus de prijs van de checkboxen moeten doorgestuurd worden naar mijn php script als je eentje aanvinkt, en de prijs meteen updaten (via jQuery neem ik aan). Echter tast ik nog in het donker, aangezien het javascript en php variabelen door elkaar heen zijn. Daarbij moeten ook nog de boxen die aangevinkt worden als sessie variabelen opgeslagen worden, omdat ik deze door andere pagina's heen ook nog gebruiken wil.

Bvd.
 
Aan een checkbox kan je een waarde hangen en deze beheren of bedienen met JavaScript. Wil je het meenemen naar een andere pagina kan dit bijvoorbeeld met $_POST en een formulier.

Hieronder een klein voorbeeld hiervan:

PHP:
<?php
  if (isset($_POST['submit'])) {
     $price = $_POST['totalPrice'];
     ...
     /* Doe iets met $price */
     ...
  }
?>
<html><head>
<SCRIPT TYPE="text/javascript">
var sumPrice = 0;

function addPrice(num) {
    if (document.getElementById("totalPrice").checked ==  true) 
        sumPrice += num;
    else
        sumPrice -= num;

    document.getElementById("totalPrice").value = sumPrice ;
}
</script>
</head>

<body>
<form action="index.php" method="post">
<input type="checkbox" onclick="addPrice(1)" value="1" />1 - 
<input type="checkbox" onclick="addPrice(2)" value="2" />2 - 
<input type="checkbox" onclick="addPrice(3)" value="3" />3 - 
<input type="hidden" id="totalPrice" name="totalPrice" value="" />
<input type="submit" name="submit" value="Submit" />
</form>
</body>

</html>

hoop dat dit helpt

groeten vreugde
 
Hey, sorry voor de late reply. Uhm, heb het even niet uitgeprobeerd, maar ik zoek denk ik iets anders, het zit wel in de goede richting. Ik haal verschillende data uit de database, en deze stop ik dan via een while loopje in een (aan te vinken) checkbox. De naam van de velden zijn dus arrays.

Ik heb, bijvoorbeeld, een standaardbedrag van 800 berekend via een PHP script. Deze staat dan standaard weergegeven. Nou heeft de gebruiker de optie om checkboxen aan te vinken, met een bepaalde prijs, en ik wil dan de totaalprijs (van 800 hier dus) ophogen zonder HEEL de pagina te refreshen met de waarde van de aangevinkte checkbox(en). Deze checkbox waardes ook nog (wanneer mogelijk) opslaan, zodat ik de totaalwaarde op andere pagina's ook nog te zien krijg (via sessie variabelen oid?).
 
Indien je wil dat hij het automatisch aanpast als je aanvinkt moet je bij de onClick eigenschap van je checkbox je javascript functie oproepen. Dan gebruik je iets in de aard van deze code in je javascript

for (var i = 0; i < document.getElementsByName("ArrayVanCheckboxen[]").length ; i++){
if (document.getElementsByName("ArrayVanCheckboxen[]").checked == true){
//hier doe je het optellen
totaal = totaal + document.getElementsByName("ArrayVanCheckboxen[]").value (van .value ben ik niet 100% zeker)
// voor het op de PHP pagina aan te passen
document.getElementById("VeldnaamTotaal").value = totaal
}
}

Indien hij het pas moet doen als je submit moet je het bij de eigenschap onSubmit doen van je formulier.

Voor je totaal in een sessievariabele te zetten moet je het op je volgende formulier doen. Daar zet je $_SESSION["bedrag"] = $_POST["NaamVeldVanTotaal"] (indien je in je formulier met method get hebt gebruikt is dit uiteraard $_GET, maar ik raad aan altijd post te gebruiken.)

Hopelijk ben je hier iets mee
Greatz
 
Ow, het topic lag weer ergens onder het stof.

Nou wat ik precies wil is het volgende;

  • Ik heb een divje (totaalprijs) met de php variabele $prijs.
  • Verder staan op de pagina verschillende inputboxen, genaamd box[] die aangeklikt kunnen worden.
  • Wanneer er op deze geklikt wordt, wil ik deze sturen naar mijn prijsberekening php die ik include op dezelfde pagina, echter wil ik geen refresh indien mogelijk
  • in de berekening ga ik deze dan verder gebruiken en delen door een aantal andere variabelen
  • wat ik dus door wil sturen is de prijs van een specifiek box[], en als er meerdere zijn aangevinkt dat de totaalwaarde van deze allemaal naar het php bestand gaat

Verder maak ik inderdaad gewoon gebruik van post variabelen.
 
Dat wordt xmlrequest-achtige dingen doen (google 'javascript AJAX'). Het idee is als volgt:
HTML:
<div id='resultaat'></div>
[JS]function reken()
{
var box = verkrijgCheckBox();

var request = new xmlrequest('reken.php?box=' + box, function()
{
if(this.readyState == 4)
{
document.getElementById('resultaat').innerHTML = this.responseText;
}
}, 'GET', true, 'text/html');
}

function verkrijgCheckBox()
{
//doe iets en return de aangeklikte waardes van checkbox. Ofzo.

return ...;
}[/JS]
PHP:
<?php

   /* reken enzo, verkrijg data van Javascript via de $_GET['box'] */
   /* prop resultaat in $waarde */

   echo $waarde;

?>
Nu is er geen javascript-object 'xmlrequest' en is de code niet-werkend, maar je volgt het idee (hoop ik).



:thumb:
 
Om een "oud" topic nog maar even omhoog te helpen. Ik heb gegoogled om mijn "probleem" proberen op te lossen. Enkel kan ik niet echt iets vinden. Op het moment ben ik bezig met het begrijpen van en schrijven van (veel) PHP. Daarom kan ik eigenlijk niet te diep in XML, AJAX en JavaScript gaan. Wat ik dan zou willen is iets van een Tut om dit te bouwen, want ik ben eigenlijk vrijwel 0,0 georiënteerd op gebieden als XML/ JS. Ik hoop dat ik zo niet te veel vraag, betreffende dit probleem. Thanks in advance.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan