login  Naam:   Wachtwoord: 
Registreer je!
 Forum

1 voor 1

Offline W0etah - 18/12/2006 17:11
Avatar van W0etahPHP beginner Hallo, ik ben nu bezig met een sciptje waarbij de gebruiker 6 spelers kan aanmaken die dan worden opgeslagen in de database.
Maar dit moet 1 voor 1 gebeuren.
Dus eerst krijg je 2 inputvelden met voornaam, achternaam.
Dan druk je op "maak speler", hij controleert of alles is ingevuld, als dat zo is, slaagt hij alles op in de database en dan moet hij naar de volgende gaan.

Weet iemand hoe ik dit kan maken?

12 antwoorden

Gesponsorde links
Offline Stefan14 - 18/12/2006 17:17
Avatar van Stefan14 PHP gevorderde heel simpel.

  1. <?php
  2. if ($i <= 6)
  3. {
  4. //aanmaak formulier + verwerking van formulier (weer) uitvoeren.
  5. $i++
  6. }
  7. else
  8. {
  9. header("Location: klaar.php");
  10. }
  11. ?>
Offline Rik - 18/12/2006 17:25
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Maar dan krijg je ze toch niet 1 voor 1?

Ik zou het met sessies doen: je maakt 1 sessie met daarin een array, in die array staan 6 array's met daar in steeds de twee waarden.

In het formulier stuur je steeds een hidden veld mee met het id van de keer dat het wordt ingevuld. Dat id wordt bepaald door het aantal waardes dat al in de sessie staat. Dus van 0 tot en met 5 + 1, maakt 1 tot en met 6.

Als de bezoeker dan in z'n browser terug gaat kan hij ook de oude waarde weer overschrijven. En als je duidelijk bij het formulier zet welke van de zes wordt ingevuld raakt de bezoeker niet in de war.

Op het einde kun je dan alles valideren, of misschien tussendoor al, en met een simpele for-lus in de database stoppen.
Offline stijnhau - 18/12/2006 17:48
Avatar van stijnhau Onbekend
  1. <?php
  2. if ($i <= 6)
  3. {
  4. //aanmaak formulier + verwerking van formulier (weer) uitvoeren.
  5. $i++
  6. }
  7. else
  8. {
  9. header("Location: klaar.php");
  10. }
  11. ?>

dat is een heel goed begin.
maar die $i is slecht.
je bent beter dat je een cokkie zet en als er 1 staat dat de inhoud +1 gaat.
Offline W0etah - 18/12/2006 17:53
Avatar van W0etah PHP beginner kan ik niet gewoon een sessie maken en die een nummer meegeven?
En dat nnummer telkens update
Offline Rik - 18/12/2006 17:55
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
@ Hierboven

Das precies wat ik bedoel...  
Offline W0etah - 18/12/2006 18:18 (laatste wijziging 18/12/2006 18:21)
Avatar van W0etah PHP beginner maar als je dan uitlogt verlies je die cookie en weet je niet meer waar je zit

EDIT: het is misschien makkelijker voor de gebruiker om gewoon de 6 spelers in 1 keer te kunnen aanmaken
Offline stijnhau - 18/12/2006 18:23
Avatar van stijnhau Onbekend nee je laat deoi cookie staan he.
maar dat in 1 keer is simpelere maar dat is niet gevraagd he.
Offline Rik - 18/12/2006 18:28
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Het lijkt me niet echt logisch dat als je zes spelers tegelijk moet maken, dat je dan tussendoor uitlogt.  

Maar goed, zes spelers kan ook in keer:
  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  2. Speler 1
  3. Waarde 1:<input type="text" name="waarde1[]" />
  4. Waarde 2:<input type="text" name="waarde2[]" />
  5. Speler 2
  6. Waarde 1:<input type="text" name="waarde1[]" />
  7. Waarde 2:<input type="text" name="waarde2[]" />
  8. Speler 3
  9. Waarde 1:<input type="text" name="waarde1[]" />
  10. Waarde 2:<input type="text" name="waarde2[]" />
  11. Speler 4
  12. Waarde 1:<input type="text" name="waarde1[]" />
  13. Waarde 2:<input type="text" name="waarde2[]" />
  14. Speler 5
  15. Waarde 1:<input type="text" name="waarde1[]" />
  16. Waarde 2:<input type="text" name="waarde2[]" />
  17. Speler 6
  18. Waarde 1:<input type="text" name="waarde1[]" />
  19. Waarde 2:<input type="text" name="waarde2[]" />
  20. </form>


Dan zul je zo'n soort array krijgen als je het formulier verstuurd:
  1. <?php
  2. // Zo zou je de array zelf maken, maar dat gebeurt dus automatisch
  3. $_POST = array(
  4. 'waarde1' => array('een', 'twee', 'drie', 'vier', 'vijf', 'zes'),
  5. 'waarde2' => array('een', 'twee', 'drie', 'vier', 'vijf', 'zes')
  6. );
  7. ?>
Met [] achter een naam in een formulier kan je dus array's maken.  

Dit is dan erg makkelijk uit te lezen.
Offline W0etah - 18/12/2006 18:37
Avatar van W0etah PHP beginner http://www.plaatscode.be/3498/

dit is wat ik nu heb, maar kzit nog met een probleem, als je op de butotn "ga verder" drukt dan kan je alle spelers aanmaken, maar klik je daarna op de button "maak de spelers" dan ga je terug naar het eerste stukje
Offline Dark_Paul - 18/12/2006 19:46
Avatar van Dark_Paul PHP ver gevorderde Als je de spelers opslaat in de database, kan je toch ophalen hoeveel extra spelers een gebruiker heeft aangemaakt?
Dan hoef je niet moeilijk te doen met sessies en cookies enzo.
Offline W0etah - 18/12/2006 20:42
Avatar van W0etah PHP beginner @dark_paul, dat leek mij ook de beste oplossing

maar nu zit ik nog met het probleem van mijn vorige reactie
Offline marten - 18/12/2006 20:46
Avatar van marten Beheerder dan moet je eerst de superglobal die je het eerste hebt geset unsetten. Want die blijft bestaan dus zal hij die code uit gaan voeren.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s