Vraag over formulieren

Status
Niet open voor verdere reacties.

vd-meij.nl

Gebruiker
Lid geworden
19 jan 2004
Berichten
33
he all,

Ik heb opdracht gekregen om
http://www.cws.nl/cws/piipr.html

dit dus na te maken in PHP.

Nu is mijn vraag: Hoe krijg ik dat als ik een checkbox aanvink dat dan ernaast de informatie komt te staan en de prijs e.d.?

Greets Jordy:thumb:
 
Die checkboxes allemaal dezelfde naam geven, met een [] erachter, en allemaal andere waarden bijv:
Code:
<input type="checkbox" name="check[]" value="unieke waarde">
Vervolgens met een
PHP:
foreach($_POST["check"] AS $key => $value)
alle checkboxes afgaan.

Succes :thumb:
 
dus als ik 3 checkboxes heb :) dan 3 keer die laatste code:rolleyes:

humz ik doe iets fout :rolleyes:

Code:
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p>
  <input type="checkbox" name="check[]" value="p"> 
P4 2,8ghz fsb800<br>
<input type="checkbox" name="check[]" value="geluid"> 
geluids dinges
</p>
<p><?php
foreach($_POST["check"] AS $key => $p);
foreach($_POST["check"] AS $key => $geluid);
?>
 </p>
</body>
</html>
 
Laatst bewerkt:
Nee :D
Je moet de formulieronderdelen wel tussen <form> en </form> zetten, deze verzenden met POST, daarna pas opvragen met PHP :)
PHP:
foreach($_POST["check"] AS $key => $value)
{
echo "Key: " . $key . "<br>Value: " . $value . "<br><br>";
}
1 keer, niet 3 keer :)
Deze code gebruik je na het verzenden van je formulier.

Succes :thumb:
 
Ik doe het even op n andere manier:rolleyes: Nu heb ik een pagina met de dropdown list

Code:
<form name="form1" method="post" action="2.php">
  <p>Processor<br>
    <select name="processor" id="processor">
      <option value="Pentuim4 2,8ghz">Pentuim4 2,8ghz</option>
      <option value="Pentuim4 2,4ghz">Pentuim4 2,4ghz</option>
      <option value="AMD Athlon XP 2400+">AMD Athlon XP 2400+</option>
    </select>
</p>
  <p>Geheugen<br>
    <select name="geheugen" id="geheugen">
      <option value="256 mb ddr400">256 mb ddr400</option>
      <option value="512 mb ddr400">512 mb ddr400</option>
    </select>
  </p>
  <p>
    <input type="submit" name="Submit" value="Ok">
</p>
</form>

en daarna de pagina 2.php met de code

PHP:
<?php
echo "<b>Processor:</b> $processor "; 
echo "<br>";
echo "<b>Geheugen:</b> $geheugen ";   
?>

Hoe krijg ik nu alleen een prijs erbij? dus als je op pagina 1.php zegt dat je een 2,8ghz wilt, dat ie dan (ik zeg maar wat) 120,- gaat kosten en dan bij 2.php dat het er dan achter komt te staan?

Daarna wil ik die prijzen optellen. dat lukt me dan nog wel :p
 
De value van de <option> veranderen in de prijs :)
Zet trouwens
PHP:
error_reporting(E_ALL);
bovenaan al je scripts, vooral in de leer, ontwikkel en testfase.
Leer ook gebruik te maken van superglobals als $_POST en $_GET, ipv. meteen $processor te gebruiken.

Succes :thumb:
 
Nee, dat doet ie niet. Dan geeft $processor het getal 125 weer ipv de volledige naam + prijs

omdat ik de prijzen ook wil optellen kan ik dus niet de naam vna het product + de prijs in de option doen.

en btw wat bedoel je met $post enzo. waarom is dat beter:8-0:
 
Geplaatst door vd-meij.nl
Nee, dat doet ie niet. Dan geeft $processor het getal 125 weer ipv de volledige naam + prijs

omdat ik de prijzen ook wil optellen kan ik dus niet de naam vna het product + de prijs in de option doen.
Dan moet je een systeem maken waarbij je zowel de prijs als de naam kan opvragen. Tip: Database.
Elke naam komt met een prijs, als je deze 2 waarden koppelt aan eenzelfde ID (ook in de database zetten), en de <option> een ID meegeeft, dan kun je alle informatie over die ID vanuit de database ophalen.
Zo zorg je er ook voor dat niemand de naam of prijs kan wijzigen.
en btw wat bedoel je met $post enzo. waarom is dat beter:8-0:
Veilgheid ? Netheid ? Onderhoudbaarheid ? Dat het script werkt ?

Zou je zo'n soort script op mijn server (en vele andere servers die op dat gebied dezelfde instellingen hebben als mij) uitvoeren, dan krijg je de ene foutmelding na de ander. De meeste servers hebben register_globals (in php.ini) op off staan (gelukkig), waardoor je niet zomaar $processor kan gebruiken.
PHP heeft de zogenaamde superglobals, $_POST, $_GET, $_SERVER, $_COOKIE, enz. Google als je het hele rijtje wil weten. Deze superglobals zijn voorgedefinieerde variabelen, ze bestaan altijd in een script.
Het is netter doordat wanneer je geen $_POST etc gebruikt, je op een beetje goed geconfigureerde server meldingen krijgt. Bij een professionele website kan dit gewoon niet. Het is onderhoudbaarder doordat als je na een half jaar wijzigingen in je script wil maken, je niet eerst hoeft te ontcijferen wat je nou eiglijk aan het doen bent. Met $_POST weet je meteen dat je met formulieren te maken hebt.
Het is veiliger, in dit geval maakt het niet zoveel uit, maar stel je maakt een cookie inlogsysteem. Een goed inlogsysteem noteert een userid en een ip (geen username en password). Gebruik je dan $userid en $ip ipv $_COOKIE["userid"] en $_COOKIE["ip"] dan kan ik net zo goed in de adresbalk '?userid=2&ip=127.0.0.1' typen. Welke $userid en $ip het script zal pakken, de cookie of de adresbalk waarde, is maar afwachten. Maar zo ontstaat er dus een redelijk groot beveiligingslek.

Succes :thumb:
 
kijk, dat zijn de betere uitleggen (of hoe je t ook schrijft:D ) bedankt hé!

Ik zal binnenkort weer kijken hoe alles in elkaar zit met mysql enzo.

maar nogmaals. merci:thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan