probleem met onbekende hoeveelheid textboxen in een formulier
Ik ben bezig met een miniprojectje rond een P2P-systeem waarin studenten elkaar kan beoordelen over hun groepwerk of dat ze goed hebben gewerkt of niet goed gewerkt hebben.
Ik heb al een schets gemaakt van de P2P-formulier waarin een student kan invullen. Die P2P-systeem bevat dus de naam van de studenten aan de linkerkant en de criteria's aan de bovenkant. Het is ook mogelijk dat je met minder of meerdere studenten in een groep zit en dat je minder of meerdere criteria's heb. Dit heb ik gemaakt aan de hand met de while-lus en gegevens uit de databank.
Nu is mijn groot probleem, hoe moet ik op één of andere manier de punten in een nieuwe tabel inserten. Bedoeling is dat het één voor één word geinsert in de databank. En hoe moet ik dit controleren op "if(!empty($_POST[...])"?
Ik heb 2 afbeeldingen gezet:
Dit geef aan dat je een formulier kan hebben met 3 criteria's en 4 namen
Dit geeft aan dat je een formulier kan hebbne met 4 criteria's en 4 namen
Mocht het niet duidelijk zijn, vraag het maar.
Anders zou ik iets verwachten dat je een tabel hebt met optie_id, cijfer en een student_id.
Zou je verder evt nog kunnen uitleggen hoe je dat bedoeld?:)
Ik heb geen idee hoe je de textboxen genoemd hebt. Maar ikzelf zou waarschijnlijk hier met arrays werken. De textboxen zou ik de naam geven: comment[id]. id is hierin het id van de persoon waarmee je samenwerkt.
Zo heb je dan bijvoorbeeld Jan (id: 10), Piet (id: 234) en Klaas (id 421) in je project. Dan krijg je dus drie textarea's:
comment[10], comment[234], comment[421]. Als deze gepost worden naar de server krijg je zoiets: $_POST = array('comment' => array(10 => 'text over Jan', 234 => 'text over Piet', 421 => 'text over Klaas'))
Nu kun je dus de comment heel makkelijk uitlezen. Je weet over welke persoon & hoeveel. Gewoon een loopje gebruiken:
Code (php)
Hoop dat ik je vraag hiermee heb beantwoord.
Wim Eikelboom op 20/06/2010 16:50:09:
Worden die opties zoals gedrag enzo ook uit de DB gehaald?
Anders zou ik iets verwachten dat je een tabel hebt met optie_id, cijfer en een student_id.
Zou je verder evt nog kunnen uitleggen hoe je dat bedoeld?:)
Anders zou ik iets verwachten dat je een tabel hebt met optie_id, cijfer en een student_id.
Zou je verder evt nog kunnen uitleggen hoe je dat bedoeld?:)
Tabel is al gelukt. Zoiets heb ik ook gedaan
Misschien is het duidelijkere met het foto die ik heb gemaakt.
EDIT: ik heb mijn 3 berichtjes in 1 bericht toegevoegd
Gewijzigd op 21/06/2010 11:38:33 door Joon Lostrie
Gewijzigd op 21/06/2010 11:39:13 door Joon Lostrie
Gewijzigd op 21/06/2010 11:39:30 door Joon Lostrie
Gewijzigd op 21/06/2010 11:39:45 door Joon Lostrie
Ik moet eerlijk zeggen dat ik niet begrijp wat je nou wilt. Wil je je vraag opnieuw formuleren, met voorbeelden en technieken die je toepast?
Zoals ik het nu zie gaat alle informatie in één DB rij. Hierdoor beïnvloed je informatie, waardoor dit niet meer terug te halen (enkel het resultaat, maar niet wat er in ingevoerd). Als dit het geval is raad ik je dit sterk af. je kunt beter een tabel met alle waarden, die weer gekoppeld is aan een overkoepelende tabel 'groep'. Ik ben me ervan bewust dat dit vaag klinkt en geformuleerd is, maar ik weet ook niet of dit antwoord is op je vraag, omdat ik je vraag nog niet begrijp.
m.v.g.,
Mark
Ik zal het nog is proberen uit te leggen wat de bedoeling is. Je ziet helemaal vanboven een soort tabel met de studenten verticaal en de criteria's horizontaal. In het midden zie je tekstvakjes. Daar moeten studenten punten geven aan die student over die criteria. Die punten moeten ergens bewaard worden in de databank.
Ook de commentaar moet bewaard worden maar ga dit in een andere tabel steken. Dit ga ik proberen uit te werken aan de hand die jij in de bovenstaande berichtje hebt gepost.
Ik hoop dat het nu wat duidelijk is.
Quote:
Nu is mijn groot probleem, hoe moet ik op één of andere manier de punten in een nieuwe tabel inserten. Bedoeling is dat het één voor één word geinsert in de databank. En hoe moet ik dit controleren op "if(!empty($_POST[...])"?
Via een loop kun je hiermee aan de slag. Binnen elke loop kun je controleren of de $_POST-var niet empty is.
Verder heb ik toch echt meer info nodig.
Wat voor meer informatie heb je eigenlijk nodig? Moet ik mijn PHP-code naar jou mailen of pm'en?
Ik wil het echt proberen om het zo goed mogelijk te vertellen maar vind het moeilijk om te vertellen.
Ik ga is proberen via een for-lus en met isset die u al vanboven heeft gepost.
Maar dan werkt de code over de $_POST['comment'] toch ook op de andere variabelen? Dat kun je op precies dezelfde manier doen.
EDIT: goed nieuws, het is gelukt. Met uw eerste tip heeft het mij geholpen, alvast bedankt!
Gewijzigd op 23/06/2010 14:20:30 door Joon Lostrie
Mark, het is opgelost en het werkt. Bedankt voor je tip en de hulp ;)