[php] formulier maker met diepe array's

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hai allemaal,

Ik ben nu ook bezig n.a.v [PHP] Formulier Generator] met een formulier generator maar zit nu met 1 probleem en dat is als volgt.

De templates die ik gebruik bestaan uit 4 delen, een start, een regel, een object en een einde en dat werkt goed voor formulieren die er als volgt uitzien

<omschrijving> <input object>
<regel>
<omschrijving> <input object>
<omschrijving> <input object>
<omschrijving> <input object>

maar nu wil ik het volgende ook mogelijk maken

<omschrijving> <input object>
<regel>
<omschrijving> <input object> & <input object>
<omschrijving> <input object>
<regel>
<omschrijving>
<input object>

etc

Heeft iemand een idee hoe ik dit voor elkaar krijg of hoe ik het moet opbouwen? ik ben verder geen sources nodig alleen wat ideeën....

Mvg,
C

[ Voor 17% gewijzigd door Verwijderd op 01-05-2004 09:58 ]


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-09 22:44

MBV

wat heb je al geprobeerd? Heb je bijvoorbeeld dit al geprobeerd:
<input type="..." name="naam[1][2]">

Zou moeten werken, lijkt mij. Zorgt ervoor dat php iets binnenkrijgt wat hij snapt als array.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nee dat is als je meerdere waarden wilt benutten, dat is niet zo zeer het probleem het probleem is meer dat ik niet weet hoe ik dit het beste kan aanpakken in de zin van het formulier opbouwen.

Acties:
  • 0 Henk 'm!

Verwijderd

Hoi, ik heb zelf ook enige ervaring met het bouwen van formuliergeneratoren (zelf 1 gemaakt). Misschien is het een idee om het als volgt te doen. Dit is een stuk code uit mijn formuliergenerator"taal". Dit voorbeeld heeft ook direct databaseverwerking etc. in zich. Hoop dat het je op ideeen brengt. (Deze (onderstaande) code wordt normaal automatisch gegenereerd door middel van een wizard.)


<?php
include("connect.php");
include("form.cls.php");

//Maak nieuw selectievak object aan
$elementtype = new FE_Select("elementtypenr","elementtypenr",$_POST["elementtypenr"]);

//De query die uitgevoerd moet worden om de waarden van het selectievak op te halen
$elementtypequery = "SELECT elementtypenr, description FROM fe_elementtype ORDER BY description";
//Voegt een eerste "element" toe
$elementtype->addElement("0","-- Selecteer een type --");
//Voegt de rest van de "elementen" aan het selectievakje toe. Bij eerste 2 parameters geven de databasevelden van de value="" en de waarde aan. De 3e waarde is de databasehandler, en de laatste de query.
$elementtype->addQuery("elementtypenr","description",$mysqli,$elementtypequery);

$name = new FE_Text("name", "name", $_POST["name"]);

$databasename = new FE_Text("databasename", "databasename", $_POST["databasename"]);

$defaultvalue = new FE_Text("defaultvalue", "defaultvalue", $_POST["defaultvalue"]);

$checkstring = new FE_Text("checkstring", "checkstring", $_POST["checkstring"]);


$TB_fe_element = new Table("fe_element",$mysqli);
$TB_fe_element->addElement($elementtype);
$TB_fe_element->addElement($name);
$TB_fe_element->addElement($databasename);
$TB_fe_element->addElement($defaultvalue);
$TB_fe_element->addElement($checkstring);

if($_SERVER['REQUEST_METHOD'] == 'POST'){
if($TB_fe_element->execute()){
$mysqli->commit();
$TB_fe_element->refreshTable();
}
}
?>
<html>
<head>
</head>
<body>
<form action="<?php print $_SERVER['SCRIPT_NAME']; ?>" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>Elementtype</td>
<td><?php $elementtype->printHTML(); ?></td>
</tr>
<tr>
<td>Naam</td>
<td><?php $name->printHTML(); ?></td>
</tr>
<tr>
<td>Databasenaam</td>
<td><?php $databasename->printHTML(); ?></td>
</tr>
<tr>
<td>Standaardwaarde</td>
<td><?php $defaultvalue->printHTML(); ?></td>
</tr>
<tr>
<td>Reguliere expressie</td>
<td><?php $checkstring->printHTML();?></td>
</tr>
</table>
<input type="submit" value="Voeg element toe">
</form>
</body>
</html>