mala
Beiträge: 5
Registriert: 20. Apr 2007, 17:03

Minibeispiel Multiple-Selectbox

24. Apr 2007, 17:18

Hallo zusammen!

Ich bin bei Redaxo Neueinsteiger und probiere im Moment einige Beispiele der Module aus. Unter anderem bin ich gerade beim Beispiel Multiple Selectbox angekommen. Ich bekomme es nicht zum Laufen, hab im Forum schon alle möglichen Lösungsvorschläge gelesen und bin nun der Meinung das ich etwas falsch mache, weiss aber nicht mehr was...

Habe das Beispiel wie folgt angelegt:
[b]Modul erstellt und in Eingabe folgendes eingefügt: (wie Beispiel)[/b]
<?php
$value4 =<<<EOD
REX_VALUE[4]
EOD;

$default = '';
$value4 = ($value4 == '') ? (array) $default : split('~~', $value4);

$select = new select();
$select->set_name('REX_VALUE[4][]');
$select->multiple(true);

// Beispieldaten für den Selekt
foreach(range(2,10) as $val)
$select->add_option($val, $val);

foreach($value4 as $val)
$select->set_selected($val);

echo $select->out();
?>



[b]und in Ausgabe: (wie Beispiel)[/b]
<?php

$value4 = split('~~', $value4);

echo '<ul>';
foreach($value4 as $val)
{
echo '<li>'. $val .'</li>';
}
echo '</ul>';

?>

[b]und als Action hinzugefügt : wie beschrieben als PRE und Status ADD/EDIT
[/b]<?php

// -------------- CONFIG

$value_id = range(1,10);
$value_sep = '~~';

// -------------- END OF CONFIG

$values = (array) $value_id;
foreach($values as $value_id)
{
$value = $REX_ACTION['VALUE'][$value_id];

$str_value = '';

if(is_array($value))
{
$str_value = implode($value_sep, $value);
}
else
{
$str_value = $value;
}

$REX_ACTION['VALUE'][$value_id] = $str_value;
}

?>


Habe [b]Redaxo 3.2 Demo[/b] installiert! und das Modul in einer Seite eingefügt, es kommt aber nur ein Listenpunkt...

Muss ich noch etwas hinzufügen? Oder was ändern? Bin in PHP noch nicht so gut, hab ein paar Sachen schon geschrieben aber ist nicht die WELT 8)

Bin für jede Hilfe dankbar

P.S. Redaxo ist wirklich sehr einfach einzurichten und aufzubauen, werde auf jeden Fall mal Projekte damit realisieren!!!

Benutzeravatar
_kweso
Beiträge: 164
Registriert: 11. Dez 2006, 20:05
Wohnort: wien/regensburg
Kontaktdaten: Website

30. Apr 2007, 21:15

ich habs auch probiert, und nicht hinbekommen.

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

2. Mai 2007, 09:11

Hej,

anbei das überarbeitete und getestete Modul aus dem Downloadbereich:

Eingabe:

Code: Alles auswählen

<?php
$value4 =<<<EOD
REX_VALUE[4]
EOD;

$default = '';
$value4 = ($value4 == '') ? (array) $default : split('~~', $value4);

$select = new select();
$select->set_name('VALUE[4][]');
$select->multiple(true);

// Beispieldaten für den Selekt
foreach(range(2,10) as $val)
  $select->add_option($val, $val);

foreach($value4 as $val)
  $select->set_selected($val);

echo $select->out();
?>

Ausgabe:

Code: Alles auswählen

<?php
$value4 =<<<EOD
REX_VALUE[4]
EOD;

$value4 = split('~~', $value4);

echo '<ul>';
foreach($value4 as $val)
{
  echo '<li>'. $val .'</li>';
}
echo '</ul>';

?>

Action als Pre - Add/Edit

Code: Alles auswählen

<?php

// -------------- CONFIG

$value_id = range(1,10);
$value_sep = '~~';

// -------------- END OF CONFIG

$values = (array) $value_id;
foreach($values as $value_id)
{
  $value = $REX_ACTION['VALUE'][$value_id];

  $str_value = '';
  
  if(is_array($value))
  {
    $str_value = implode($value_sep, $value);
  }
  else
  {
    $str_value = $value;
  }

  $REX_ACTION['VALUE'][$value_id] = $str_value;
}

?>
vg Thomas

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

3. Mai 2007, 20:38

Hi,

Code: Alles auswählen

echo $select->out(); 
:?: is mir nicht ganz klar mit dem ->out(); (kommt Array raus) ... aber egal ...

Nebenfrage:
ist es auch möglich aus einer Kategorie des Medienpools die BildTitel aller
sich in dieser Kat befindlichen Bilder in eine MultipleSelectBox zu packen
und bei Mehrfachauswahl auszugeben??? Wenn ja, wie... Ansatz wäre klasse zum basteln ;) ...

Danke schonmal. grz Chris.

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

3. Mai 2007, 20:52

:D
Minibeispiel Medialist Button

dürfte zum Üben reichen ;)

c.

mala
Beiträge: 5
Registriert: 20. Apr 2007, 17:03

Super klappt einwandfrei!!!

7. Mai 2007, 08:50

Nun werde ich mir das alles genauer anschauen, damit ich es auch verstehe! :shock: 8)

Danke für die schnelle Hilfe

Hansa
Beiträge: 1
Registriert: 9. Mär 2008, 12:59

9. Mär 2008, 13:09

Hallo,

ich habe den Code kopiert und in mein Modul so eingefügt. Jetzt bekomme ich nicht einmal den Block zum aussuchen angezeigt.

Ich benutze Redaxo 3.2.

Kann mir jemand helfen ? Die Aktion habe ich auch dem Modul hinzugefügt.

Ich bin leider etwas ratlos. Ich möchte ein Modul haben, in dem ich mir beliebige Newskategorien aussuchen kann, die angezeigt werden sollen.

Gruß,
Hannes

Benutzeravatar
hundertmorgen
Beiträge: 189
Registriert: 29. Jul 2005, 15:36
Wohnort: Seattle - USA
Kontaktdaten: Website AOL

12. Nov 2008, 23:09

Hat denn niemand eine Idee?

Ich habe alles wie in der Anleitung zur Verwendung der Multiple Selectboxen angelegt. (Module = http://www.redaxo.de/165-Moduldetails.h ... ule_id=146 inkl. Aktionen)

Auch habe ich die Korrekturversion aus dem Forum ausprobiert = http://forum.redaxo.de/sutra34533.html#34533

Meine Ausgabe ist aber einfach nur
Array
?!

Mit der Anweisung "var_dump($value4);"
wird ausgegeben:
array(1) { [0]=> string(5) "Array" }
Ich komme hier einfach nicht weiter...
Kann jemand helfen?

Danke, Sandra

theforce
Beiträge: 31
Registriert: 8. Sep 2008, 11:44
Wohnort: Augsburg

15. Nov 2008, 19:08

bei mir ist das gleiche Problem... wenn ich mit print_r innerhalb der Aktion das "REX_ACTIONS" Objekt ausgeben lasse, dann zeigts mir im entsprechenden Eintrag einfach nur "Array" an, aber das ist in Wirklichkeit ein String und kein Array!

Bitte bitte... ich brauch ne Lösung für das Problem, sonst komm ich bei ner aktuellen Website nicht weiter.

theforce
Beiträge: 31
Registriert: 8. Sep 2008, 11:44
Wohnort: Augsburg

15. Nov 2008, 19:41

hi,

hab grad nach dem studium anderer beiträge im forum das problem gelöst:

Ihr müsst in der Action, folgende Zeile austauschen:

$value = $REX_ACTION['VALUE'][$value_id];

mit

$value = $_POST['VALUE'][$value_id];



Cheers!

netmanix

15. Apr 2009, 21:01

Zwar ein altes Thema... aber mich würde es interessieren wie ich in formGen oder do form multiple select boxen erstellen kann ..
Natürlich kann man auch eine lange Checkbox-Liste erstellen aber irgendwie ist das nicht das Wahre.

pixelrow
Beiträge: 2
Registriert: 1. Jul 2009, 09:15

1. Jul 2009, 09:26

hallo zusammen,

gleich mal die erste Frage...hab jetzt alles versucht wie es hier beschrieben wird...aber kein Ansatz wie hier gepostet, hat funktioniert...es kommt immer die Ausgabe "array"...Redaxo Version ist die 4.1....

Bitte um Hilfe...

Timo

elsethos
Beiträge: 27
Registriert: 17. Okt 2008, 07:55

Fehler liegt in der Modulbeschreibung

15. Dez 2010, 11:57

Multiple Selectbox (Multiselectbox)

Getestet mit Redaxo 4.1.
Die Action.

Benötigt werden 3 Actioneinträge: Preview, Presave und Postsave, jeweils mit ADD und EDIT


Den Eintrag bei Preview rausnehmen, dann funktioniert das Ganze.

mokraube
Beiträge: 8
Registriert: 11. Jul 2011, 11:35
Wohnort: Offenbach
Kontaktdaten: Website

Re: Minibeispiel Multiple-Selectbox

24. Feb 2012, 11:50

Nachdem ich das Modul getestet habe, und es bei mir nicht funktioniert hat, hier nun ein fertiges Beispielmodul für Redaxo 4.3.x:

Eingabe:

Code: Alles auswählen

<?php
$value1=<<<EOD
REX_VALUE[1]
EOD;

$default = '';
$value1 = ($value1 == '') ? (array) $default : split('~~', $value1);

$select = new select();
$select->set_name('VALUE[1][]');
$select->multiple(true);

$select->add_option("weiß", "#ffffff");
$select->add_option("schwarz", "#000000");
$select->add_option("grau", "#a6a8a8");

foreach($value1 as $var) {
	if(in_array($var, $value1)) {
		$select->set_selected($var); 
	}
}

echo($select->out());

?>
Ausgabe:

Code: Alles auswählen

<?php

$value1=<<<EOD
REX_VALUE[1]
EOD;

$value1 = split('~~', $value1);

echo '<ul>';
foreach($value1 as $var) {
  echo '<li>'. $var .'</li>';
}
echo '</ul>';

?>
Aktion (Presave ADD/EDIT):

Code: Alles auswählen

<?php 

// -------------- CONFIG 

$value_id = range(1,10);
$value_sep = '~~';

// -------------- END OF CONFIG 

$values = (array) $value_id;
foreach ($values as $value_id)
{
  if (!isset ($_POST['VALUE'][$value_id]) or $_POST['VALUE'][$value_id] == '') { continue; }
  $value = $_POST['VALUE'][$value_id];

  $str_value = '';

  if (is_array($value))
  {
    $str_value = implode($value_sep, $value);
  }
  else
  {
    $str_value = $value;
  }
  $REX_ACTION['VALUE'][$value_id] = $str_value;
}

?>
Viel Spaß damit!

Benutzeravatar
Cabby
Beiträge: 104
Registriert: 21. Sep 2006, 13:24
Wohnort: Bad Salzuflen
Kontaktdaten: Website

Re: Minibeispiel Multiple-Selectbox

10. Apr 2018, 00:33

Hallo,

kann mir jemand verraten, wie das Ganze OHNE split funktioniert?
Seit PHP7 gibt´s das nämlich nicht mehr :?

Einfach mal mit "preg_split()" ersetzen klappt leider nicht.

So war es bisher:

Code: Alles auswählen

$value4 =<<<EOD
REX_VALUE[4]
EOD;
$default = ''; 
$value4 = ($value4 == '') ? (array) $default : split('~~', $value4); 
So funktioniert es leider nicht:

Code: Alles auswählen

$value4 =<<<EOD
REX_VALUE[4]
EOD;
$default = ''; 
$value4 = ($value4 == '') ? (array) $default : preg_split('~~', $value4); 
Auch mit explode() und str_split() hab ich nichts erreicht.
Steh ich auf dem Schlauch?

Version
REDAXO: 4.7.0
PHP: 7.0.29

Viele Grüße
Cabby
<love>redaxo</love>
Twitter @tobias_gerlach

Zurück zu „Allgemeines [R3]“