Toon posts:

Dynamische checkboxen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste mensen ik heb een probleem. Voor school moet ik een accesoirespakket tool maken. Hierin heb ik een aantal checkboxen die je aan kan klikken. Wat ik probeer te bereiken is dat als je op een checkbox klikt de nieuwe totale waarde direct er naast verschijnt. Tot nu toe lukt het wel, alleen geeft hij 3 errors aan het begin. En als je een checkbox aanklikt moet je eerst op verzenden klikken voordat hij het laat zien. Kunnen jullie mij helpen?

Dit is wat ik heb tot nu toe:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?php
$geluid = $_POST['geluid'];
$geluid = array_sum($geluid);

$uiterlijk = $_POST['uiterlijk'];
$uiterlijk = array_sum($uiterlijk);

$innerlijk = $_POST['innerlijk'];
$innerlijk = array_sum($innerlijk);
?>

<form name="form1" method="post" action="">
<table border="1px">

<tr><td colspan="3"> Geluid:</td><td>Kosten</td></tr>
<tr><td><input type="checkbox" value="70" name="geluid['70']" /></td> <td>Speaker 1</td> <td> 70-,</td><td rowspan="3" align="center">Geluidskosten:<br/> <input type="text" style=" width:40px;" readonly="readonly" value="<?php echo "$geluid"; ?>"/><br /></td></tr>
<tr><td><input type="checkbox" value="150" name="geluid['150']" /></td> <td>Spekaer 2</td> <td> 150-,</td></tr>
<tr><td><input type="checkbox" value="240" name="geluid['240']" /></td> <td>CD Wisselaar</td> <td> 240-,</td></tr>


<tr><td colspan="3"> Uiterlijk:</td></tr>
<tr><td><input type="checkbox" value="20" name="uiterlijk['20']" /></td> <td>Nieuwe kleur</td> <td> 20-,</td><td rowspan="3" align="center">Uiterlijkkosten:<br/> <input type="text" style=" width:40px;" readonly="readonly" value="<?php echo "$uiterlijk"; ?>"/><br /></td></tr>
<tr><td><input type="checkbox" value="30" name="uiterlijk['30']" /></td> <td>Stalen velgen</td> <td> 30-,</td></tr>
<tr><td><input type="checkbox" value="40" name="uiterlijk['40']" /></td> <td>Spoiler</td> <td> 40-,</td></tr>

<tr><td colspan="3"> Innerlijk:</td></tr>
<tr><td><input type="checkbox" value="80" name="innerlijk['80']" /></td> <td>Ingebouwde TomTom</td> <td> 80-,</td><td rowspan="3" align="center">Innerlijkkosten:<br/> <input type="text" style=" width:40px;" readonly="readonly" value="<?php echo "$innerlijk"; ?>"/><br /></td></tr>
<tr><td><input type="checkbox" value="90" name="innerlijk['90']" /></td> <td>DVD Speler incl een scherm</td> <td> 90-,</td></tr>
<tr><td><input type="checkbox" value="100" name="innerlijk['100']" /></td> <td>2 schermen voor DVD speler</td> <td> 100-,</td></tr>

</table>
<input type="submit" value="verzenden"/>
</form>


</body>
</html>


Alvast Bedankt

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 23:32

Onbekend

...

Wat jij zoekt is Ajax.
Hier is er wat meer over te vinden: http://www.w3schools.com/Ajax/Default.Asp

Speel ook Balls Connect en Repeat


  • posttoast
  • Registratie: April 2000
  • Laatst online: 23:00
Ajax? Welnee, de waardes heeft hij toch al? Dan kan hij die toch met Javascript bij elkaar optellen?

omniscale.nl


  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Vind ik wel een heel zwakke reply eerlijk gezegd.

Alle prijzen staan al in de source en je kunt met Javascript ook prima alles optellen en het laten zien. Daar is de server echt niet per sé voor nodig.

[ Voor 0% gewijzigd door Tanuki op 11-10-2008 16:42 . Reden: Wat posttoast zegt dus... ]

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 23:32

Onbekend

...

Jullie hebben gelijk. Ik begreep dat hij meteen iets naar de server wilde verzenden zonder de verzend-knop te gebruiken.

De prijzen zijn bekend, dus dit is met JavaScript en eventueel css wel mogelijk.

Voor elke checkbox zou je dan een JavaScript-functie aan moeten roepen m.b.v. het onChange-event.

Speel ook Balls Connect en Repeat


Verwijderd

Topicstarter
hmm daar dacht ik ook aan omdat met document.getelementbyid te doen en zo. Maar eigenlijk wou ik alles in PHP houden voor het geval javascript uitgeschakelt staat. Is er een soort vervanger voor document.getelementbyid in php?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 23-01 07:34

Bosmonster

*zucht*

Verwijderd schreef op zaterdag 11 oktober 2008 @ 17:04:
hmm daar dacht ik ook aan omdat met document.getelementbyid te doen en zo. Maar eigenlijk wou ik alles in PHP houden voor het geval javascript uitgeschakelt staat. Is er een soort vervanger voor document.getelementbyid in php?
Volgens mij snap je het verschil tussen clientside en serverside niet helemaal :)

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 23:32

Onbekend

...

PHP-code wordt uitgevoerd op de server, en JavaScript wordt uitgevoerd bij de gebruiker.

Het is niet mogelijk om iets aan bij de gebruiker automatisch te laten veranderen als JavaScript uitgeschakeld staat.
Je kan wel een extra ververs-knop in het scherm maken waarmee de gebruiker de aantallen en bedragen kan verversen.

Speel ook Balls Connect en Repeat


Verwijderd

Topicstarter
Ok ik fix het wel met javascript ;). In ieder geval toch bedankt. Weet iemand wel hoe ik die errors weg kan krijgen?

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 23:32

Onbekend

...

Verwijderd schreef op zaterdag 11 oktober 2008 @ 17:26:
Weet iemand wel hoe ik die errors weg kan krijgen?
Stel dat je pagina opvraagt zonder parameters, dan krijg je inderdaad 3 errors omdat $_POST['geluid'] niet is gedefinieerd.

Dit
PHP:
1
$geluid = $_POST['geluid'];

moet je vervangen door dit:
PHP:
1
2
3
4
if ( isset( $_POST['geluid']) )
{
  $geluid = $_POST['geluid'];
}

Speel ook Balls Connect en Repeat


Verwijderd

Topicstarter
Bedankt!

Verwijderd

offtopic:
Waarom noemt iedereen elk willekeurige navigatiesysteem toch een TomTom :'( Volgens mij kun je een TomTom niet eens inbouwen, dus noem het gewoon navigatie :)

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Onbekend schreef op zaterdag 11 oktober 2008 @ 17:33:
[...]

Stel dat je pagina opvraagt zonder parameters, dan krijg je inderdaad 3 errors omdat $_POST['geluid'] niet is gedefinieerd.

Dit
PHP:
1
$geluid = $_POST['geluid'];

moet je vervangen door dit:
PHP:
1
2
3
4
if ( isset( $_POST['geluid']) )
{
  $geluid = $_POST['geluid'];
}
En wat is dit voor een gekke constructie?

Nu moet je verderop, waar je $geluid wilt gebruiken, weer eenzelfde if maken.

Dus doe het aub gewoon netjes:
PHP:
1
2
3
4
if (isset($_POST['geluid']))
{
    // geluid checkbox is aangevinkt, doe nu iets
}

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?

Pagina: 1