[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Mehrfach Select
Seite 1 von 1

Mehrfach Select

Verfasst: 11. Jun 2010, 03:11
von bigh03
Hallo,

ich hab da mal eine Frage eventuell kann mir jemand weiter helfen!
:?
Ich möchte in einen Addon eine Mehrfach Auswahlliste erstellen.

Hier der Code (Die anzeige hab ich jetzt einmal weggelassen):

Code: Alles auswählen

<?php
$eintrag = array('one','two','three');

if ($func=='edit' || $func=='add') {
	$form = new rex_a350_form($table,'Team');
	
	$field =& $form->addSelectField('funktion');
	$field->setLabel("Funktion");
	$select = &$field->getSelect();
		$select->setMultiple(true);
		$select->setSize(10);
		$select->addArrayOptions($eintrag, true);

	if ($func == 'edit') {
		$form->addCreateField();
		$form->addUpdateField();
	}

	$form->show();
}
?>
Das funktioniert ja auch und wird auch angezeigt.
Nur wenn ich jetzt auf Speichen gehe, wird nur ein Wert in der DB Spalte 'funktion' eingetragen.

Und beim Bearbeiten wird dann natürlich auch nur der eine Wert angezeigt und Selektiert.

Was mache ich da Falsch?

lg,
Herbert

Verfasst: 11. Jun 2010, 15:35
von bigh03
Hat keiner eine Idee wie das gehen könnte? :(

Verfasst: 11. Jun 2010, 19:50
von Goldfisch

Verfasst: 14. Jun 2010, 15:37
von bigh03
Danke Goldfisch,

leider werde ich mit dem Link Auch nicht schlauer :oops:
Das ganze ist schon beim Speichern komisch!
Da wird immer nur ein Wert in die DB eingetragen.

Auch wenn ich 'one' und 'three' auswähle. Es wird dann immer der letzte Wert, also in dem Fall, 'three' in dei DB eingetragen.

Hab ich da was im Code vergessen?

lg,
Herbert

Verfasst: 14. Jun 2010, 15:42
von Xong
bigh03 hat geschrieben:Hab ich da was im Code vergessen?
Versuch´s mal statt $field =& $form->addSelectField('funktion'); mit $field =& $form->addSelectField('funktion[]');, damit der Browser auch weiß, dass mehrere Werte übertragen werden sollen.

Verfasst: 14. Jun 2010, 15:54
von bigh03
Danke Xong, das wars auch nicht! Da kommt dann nur eine Fehlermeldung.
Weil er ja den Spaltennamen nicht finden Kann.

lg,
Herbert

Verfasst: 14. Jun 2010, 18:10
von Gregor.Harlan
Hi,

füge diese Zeile hinzu:

Code: Alles auswählen

$field->setAttribute('multiple', 'multiple');
Ab REX 4.3 sollte es auch ohne diese Zeile funktionieren.

Gruß, Gregor

Verfasst: 14. Jun 2010, 19:43
von bigh03
Danke Gregor!

Hier noch das ganze wie es sein sollte damit es funktioniert:

Code: Alles auswählen

<?php
$eintrag = array('one','two','three');

if ($func=='edit' || $func=='add') {
   $form = new rex_a350_form($table,'Team');
   
   $field =& $form->addSelectField('funktion');
   $field->setAttribute('multiple','multiple');
   $field->setLabel("Funktion");
   $select = &$field->getSelect();
      $select->setMultiple(true);
      $select->setSize(10);
      $select->addArrayOptions($eintrag, true);

   if ($func == 'edit') {
      $form->addCreateField();
      $form->addUpdateField();
   }

   $form->show();
}
?>
Danke an alle :D und lg,
Herbert

Verfasst: 21. Jun 2010, 16:26
von bigh03
So jetzt hätte ich dazu doch noch eine Frage!

Jetzt möchte ich das im Backend bei der Eingabe Seite, nur die Einträge die gleich mit der $oid sind.

Code: Alles auswählen

$qry = "SELECT name as label,id FROM ".$table."_partner WHERE partner_von = " . $oid . " AND status='1'";
$field = &$form->addSelectField('partner');
$field->setAttribute('disabled','disabled');
$field->setAttribute('style','background:#EFF9F9; border:none;');
$field->setLabel("Partner <br />(nur zur Info)");
	$select =& $field->getSelect();	
	$select->addSqlOptions($qry);
Nun ist es ja aber so das in der Spalte "partner_von" die ID's ja so gespeichert sind -> 1|+|2|+|3 usw..
Wie kann ich jetzt die SQL Abfrage in ein Array oder Variable speichern damit ich das Ganze dann in ein Textfeld ausgeben kann.
Das Ganze soll nur eine Hilfestellung des Users werden und soll auch nicht mitgespeichert werden.
Es ist mir klar dass es dann nur beim Editieren angezeigt wird, da ja vorher noch keine $oid vorhanden ist.

lg,
Herbert

Verfasst: 5. Jul 2010, 12:33
von bigh03
So ich hab das ganze jetzt so hinbekommen. Eventuell nicht der beste Weg aber es geht:

Code: Alles auswählen

$sql = new rex_sql;
$sql->debug = true;
$qry = "SELECT name, partner_von, id FROM ".$table."_partner WHERE status='1' ORDER BY name ASC";
$sql->setQuery($qry);
$attribute_fields = $sql->getArray();

$i = 0;
$ausgabe = '';
foreach ($attribute_fields as $attributes) {
	$i++;
	if( $i <= (count($attribute_fields) - 1) ) {
		$ausgabe .= $attributes['name'] . ', ';
	} else {
		$ausgabe .= $attributes['name'];
	}			
}	
$field =& $form->addTextField('partner');
$field->setAttribute('value', $ausgabe);
$field->setAttribute('disabled','disabled');
$field->setAttribute('style','background:#fff; color:#000; border:1px solid #828790;');	
$field->setLabel('Partner');
lg,
Herbert