Seite 1 von 1

Selectfelder definieren

Verfasst: Do 27. Dez 2007, 13:13
von AWR
ich suche den code für ein vordefiniertes select-feld in der change.php

z.B. Anrede: Auswahl Herrn, Frau, Firma...

Damit wäre in vielen Datenbankfeldern die Eingaben schneller und vorallem Einheitlich zu erbringen.

Natürlich sollte beim ändern des Datensatz die Vorbelegung wieder aus der SQL-Datenbank eingelesen und gesetzt werden (nicht mit Standardwert)

Wie kann ich dies verwirklichen? Der Versuch den Quelltext vom Feld Group zu kopieren und ändern sind bei mir gescheitert, obwohl ich auch neue Tabellen nach vorlage von group erstellt habe.

Jetzt frage ich die PHP-Fachleute.

Re: Selectfelder definieren

Verfasst: Do 27. Dez 2007, 14:12
von der-domi
Das ist nicht so einfach möglich. Es werden alle Felder angezeigt, welche in "class.settings_table.php" definiert sind. Dazu werden die Typen unterschieden.
Ich würde eine neue Maske "ALLOWED_VALUES" einführen. Diese erhält in einem neuen Feld die Werte, welche verwendet werden dürfen. Z.B.:

Code: Alles auswählen

$this->column[] = array(
    "original"   => "title",
    "alias"      => $lang->get(1),
    "type"       => "varchar",
    "regexp"     => "",
    "link"       => "",
    "default"    => "",
    "mask"       => SHOW_IN_DETAIL + ALLOW_INSERT + ALLOW_CHANGE + ALLOWED_VALUES,
    "allowed_values"      => array( "Herr", "Frau", "..." ),
    "width"      => "3em"
Dementsprechend müssen dann die Formulare ausgewertet werden. Das ist dann auch noch ein wenig Arbeit.

Verfasst: Do 27. Dez 2007, 14:46
von AWR
das klingt schonmal nach nem guten Weg zum Ziel :-)

wäre ja schön, wenn da ein paar php-profis auch interessiert sind, das Ziel gemeinsam zu erreichen.

Ich versuche es mal selber bischen rumzutüfteln...

AWR

es gibt nichts Gutes, ausser man tut es!

Verfasst: Do 27. Dez 2007, 15:47
von AWR
also - ein selectfeld habe ich schonmal hinbekommen.
class.settings_table.php eine neues type erstellt "select"

In change.php habe ich folgende Zeilen eingefügt:
case 'select' : echo "<select name=\"".mysql_field_name($rs, $i)."\">";
echo "<option>".$lang->get(38)."</option>";
echo "</select>";break;

Jetzt bin ich am Ende meines Wissens. wie bekomme ich nun die Optionen aus dem neuen array allowed_values eingefügt und vorallem mit dem selected-Wert aus dem Datensatz vorbelegt. ????

AWR

es gibt nichts Gutes, ausser man tut es

Verfasst: Fr 28. Dez 2007, 16:05
von AWR
Alles muß man selber machen *g*

hier der Rest meiner Lösung:

Code: Alles auswählen

case 'select' : $daten = $settings->column[$index]['allowed_values']; 
echo "<select name=\"".mysql_field_name($rs, $i)."\">";
echo "<option>".$lang->get(38)."</option>";
foreach ($daten as $option) 
{
echo "<option";
if ($option == $value)
{
echo " selected=\"selected\" style=\"font-weight: bold;\" ";
}
echo ">".$option."</option>";
}
echo "</select>";break;
Ein Dank an Domi, der mir mit seiner schnellen Antwort einen Weg geöffnet hat. Thx.

AWR


es gibt nichts Gutes, ausser man tut es.

Verfasst: Fr 4. Jan 2008, 15:54
von der-domi
Ich habe das "Selectfeld" in der aktuellen Version übernommen. Ich habe aber den Code angepasst...

gute idee

Verfasst: Sa 5. Jan 2008, 08:37
von kama8
das war mal eine gute idee, das uebernehmen !