Seite 1 von 1

Variable Anzahl von Eingabefeldern

Verfasst: So 3. Aug 2003, 13:40
von chricke
hallo leute,

ich versuche gerade ein modul zu schreiben bei dem vorher nicht bekannt ist wie viele eingabefelder im inputbereich gebraucht werden.
also habe ich das ganze dynamisch umgesetzt ( ungefähr so: CMS_VAR[$counter]) und das scheint auch soweit zu funktionieren.
das problem ist nun das ich die werte im output ja wieder auslesen muß.... ein Konstrukt wie "CMS_VALUE[$counter]" liefert aber den string "CMS_VALUE[$counter]" (sprich: wenn ich nicht direkt eine zahl eingebe wird der ausdruck nicht interpretiert) und nicht den wert den ich haben will.
kann mir jemand einen tipp geben wie ich das umgehen kann?

vielen dank schonmal.

christian

Verfasst: Mo 4. Aug 2003, 07:43
von chricke
hier noch ein nachtrag:

$query = "SELECT * FROM ".$cfg["tab"]["upl"]." WHERE filetype = 'pdf' order by created";

$db->query($query);

while ($db->next_record()) {
//$knurpsel replaces old $filename
$knurpsel[$db->f("idupl")] = $db->f("filename");

} // end while

function d_checked($which) {
echo "which : $which"; // ausgabe string: "which : CMS_VALUE[..]" soll sein: "which : on" od. "which :"
if ($which != "") {
return "checked";
}
} // end function

echo "<table width=\"300\" cellspacing=\"1\" cellpadding=\"4\" border=\"0\" bgcolor=\"#000000\">
<tr bgcolor=\"#cccccc\" align=\"center\">
<td>Aktiv</td>
<td>Datei</td>
</tr>";


if (is_array($knurpsel)) {
$counter=1;
foreach ($knurpsel as $key => $value) {
echo "<tr bgcolor=\"#ffffff\" align=\"center\">
<td><input name=\"CMS_VAR[$counter]\" value=\"on\" type=\"checkbox\" ".d_checked("CMS_VALUE[$counter]")."></td>";
$counter++;
echo " <td><input name=\"CMS_VAR[$counter]\" type=\"hidden\" value=\"$key\">$value</td></tr>";
$counter++;
} // end foreach
} // end if

echo "<tr bgcolor=\"#ffffff\"><td>&nbsp;</td><td><input name=\"CMS_VAR[0]\" type=\"hidden\" value=\"$counter\"></td></tr>";

echo " </table>";

was mache ich falsch?

Verfasst: Mo 4. Aug 2003, 14:55
von Sven777b
Tja ganz einfach - du versuchst Kühe zum fliegen zu bringen...
kurzantwort : impossible
begründung: die werte CMS_VAR[x] werden geparst bevor das ganze überhaupt ausgeführt wird. Geparst bedeutet, suchen&ersetzen - ergo kannst du CMS_VAR unter keinen umständen dynamisch abarbeiten.
Das einzige was du machen kannst wäre : du erstellst am Anfang des Output ein Mega-Array mit einer großen Anzahl von CMS_VARs

$cms_var[0] = "CMS_VAR[0]";
$cms_var[1] = "CMS_VAR[1]";
$cms_var[2] = "CMS_VAR[2]";

Verfasst: Mo 4. Aug 2003, 15:18
von chricke
nach einigen stunden forum surfen habe ich das leider auch schon gefunden. schade eigentlich. habe das jetzt auch so gelöst. gibt es eigentlich eine größenbegrenzung der module? brauche VIELE variablen ... :wink:
das bedeuted mit anderen worten das ein entwickeln komplexer module nicht möglich ist.
was hat es denn mit den plugins auf sich? funktioniert das schon?
kann man sowas damit umsetzen?

Verfasst: Mo 4. Aug 2003, 15:21
von chricke
nachtrag:
die dynamische verwendung von CMS_VAR[..] geht übrigens.....
nur das auslesen der werte per CMS_VALUE[..] funktioniert so nicht.....
sprich: der quellcode oben funktioniert und macht was er soll
halt bis auf das setzen der richtigen werte für die checkboxen.....