login  Naam:   Wachtwoord: 
Registreer je!
 Forum

array pakt er maar 1 (Opgelost)

Offline BaddyZ - 18/04/2007 21:18 (laatste wijziging 18/04/2007 21:19)
Avatar van BaddyZNieuw lid Hallo,

Ik heb een aantal checkboxes gemaakt:
  1. java: <input type="checkbox" name="kennis[]" value="java" ></input>
  2. php: <input type="checkbox" name="kennis[]" value="php" ></input>
  3. c++: <input type="checkbox" name="kennis[]" value="c++" ></input>
  4. dhtml: <input type="checkbox" name="kennis[]" value="dhmt" ></input>
  5. xml: <input type="checkbox" name="kennis[]" value="xml" ></input>


Nu wil ik als bijvoorbeeld dhtml en php worden aangevinkt dat ze allebei in een variabele opgeslagen worden zodat ik ze later beide kan uitprinten.
Voorbeeldje hoe uitkomst eruit moet zien:
Kennis van/ervaring met: dhtml, php

Dit heb ik geprobeerd:

  1. if (!(isset($_POST["kennis"]) && $_POST["kennis"]!="")) {
  2. $returnString = $returnString . 'kennis van/ervaring met: ' . "<br />";
  3. }
  4. else{
  5. foreach($_POST["kennis"] as $kennis){
  6. $kennisVan = '';
  7. $kennisVan = $kennisVan . $kennis;
  8. }
  9. $returnString = $returnString . 'kennis van/ervaring met: ' . $kennisVan . "<br />";
  10. }
  11.  
  12. echo $returnString;


Nu als ik er bijvoorbeeld 3 aanvink dan wordt er maar 1 uitgeprint. Weet iemand waarom?

7 antwoorden

Gesponsorde links
Offline Godlord - 18/04/2007 21:27
Avatar van Godlord PHP gevorderde omdat ze allemaal de naam kennis[] bevaten.

Probeer dit eens.

  1. java: <input type="checkbox" name="java" ></input>
  2. php: <input type="checkbox" name="php" ></input>
  3. c++: <input type="checkbox" name="cpp" ></input>
  4. dhtml: <input type="checkbox" name="dhtml" ></input>
  5. xml: <input type="checkbox" name="xml" ></input>


  1. <?php
  2. $returnString = "";
  3. $new = 0
  4. if (isset($_POST['java'])) {
  5. $returnString = $returnString."Java";
  6. $new = 1;
  7. }
  8. if (isset($_POST['php'])) {
  9. if ($new == 1) {
  10. $returnString = $returnString.", PHP";
  11. $new = 0;
  12. } else {
  13. $returnString = $returnString."PHP";
  14. $new = 0;
  15. }
  16. $new = 1;
  17. }
  18.  
  19. if (isset($_POST['cpp'])) {
  20. if ($new == 1) {
  21. $returnString = $returnString.", C++";
  22. $new = 0;
  23. } else {
  24. $returnString = $returnString."C++";
  25. $new = 0;
  26. }
  27. $new = 1;
  28. }
  29.  
  30. if (isset($_POST['dhtml'])) {
  31. if ($new == 1) {
  32. $returnString = $returnString.", DHTML";
  33. $new = 0;
  34. } else {
  35. $returnString = $returnString."DHTML";
  36. $new = 0;
  37. }
  38. $new = 1;
  39. }
  40.  
  41. if (isset($_POST['xml'])) {
  42. if ($new == 1) {
  43. $returnString = $returnString.", XML";
  44. $new = 0;
  45. } else {
  46. $returnString = $returnString."XML";
  47. $new = 0;
  48. }
  49. $new = 1;
  50. }
  51.  
  52. if ($returnString != "") {
  53. echo "Kennis van/ervaring met: ".$returnString.".";
  54. } else {
  55. echo "Kennis van/ervaring met: niks.";
  56. }
  57. ?>
Offline BaddyZ - 18/04/2007 21:34
Avatar van BaddyZ Nieuw lid Door value="kennis[]" maak ik gebruik van multiple form selection.
Als ik dit gebruik:

  1. print_r($_POST['kennis']);


dan wordt er dit uitgeprint word

Array
(
[0] => java
[1] => php
etc...
)

dus daarom heb ik die foreach gebruikt maar het probleem is dat niet elke waarde achter elkaar wordt geplakt En ik denk dat er wel een manier is waarbij het wel zou kunnen. Maar daar kan ik niet achterkomen... 
Offline Godlord - 18/04/2007 21:40
Avatar van Godlord PHP gevorderde Die multiple form heb ik immers nooit gezien maarja volgens sommigen ken ik dus geen HTML. Misschien moet je eens $_POST['kennis'] eerst to een array om te vormen tot je $kennis[] ofzo hebt en dan lukt je het misschien wel.
Offline bertmelis - 18/04/2007 22:09 (laatste wijziging 18/04/2007 22:25)
Avatar van bertmelis PHP interesse wijzig
  1. foreach($_POST["kennis"] as $kennis){
  2. $kennisVan = '';
  3. $kennisVan = $kennisVan . $kennis;
  4. }

in
  1. $kennisVan = '';
  2. foreach($_POST["kennis"] as $kennis){
  3. $kennisVan = $kennisVan . $kennis;
  4. }


Anders wordt $kennisVan altijd gereset!
Offline Ibrahim - 18/04/2007 22:12
Avatar van Ibrahim PHP expert nu nog steeds hoor, je bent een punt vergeten voor de = teken
Offline bertmelis - 18/04/2007 22:27
Avatar van bertmelis PHP interesse @siliecom:
er moet toch geen punt voor het =-teken?
  1. $kennisVan = $kennisVan.$kennis

is gelijk aan
  1. $kennisVan .= $kennis
Offline BaddyZ - 19/04/2007 09:59
Avatar van BaddyZ Nieuw lid Die van bertmelis werkt, hij heeft gelijk kennisVan werd door de loop steeds gereset hehe dom van mij :D

bedankt!:D:D
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.256s