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

REX_VALUE dynamisch füllen

Verfasst: 15. Dez 2016, 19:42
von erraiva
Hallo Leute, vielleicht kann mir jemand helfen.

Für Moduleingaben möchte ich verschiedene Selectauswahlen über eine Funktion generieren lassen.
D.h. ich gebe ein Array und eine Input-Nummer an eine Funktion, die schreibt mir dann die Selects.

Das sieht so aus:

<------- die Funktion:

<?php
// Funktion generiert beliebige Selects
function generateSelectFromArray($array,$field){
echo '<select name="REX_INPUT_'.$field.'" class="form-control">';
foreach($array as $key => $value) {
echo '<option value="'.$key.'"';
if ($key == 'REX_VALUE[14]') echo ' selected="selected"';
echo'>'.$value.'</option>';
}
echo "</select>";
}
?>

<-------- und die beiden Variablen, die die Funktion bekommt:

$hlevel = array(''=>'..','h1'=>'h1','h2'=>'h2','h3'=>'h3','h4'=>'h4');
generateSelectFromArray($hlevel,'VALUE[14]');

So wie hier funktioniert es auch, nur ist bei der if-Abfrage REX_VALUE[14] noch fest eingegeben.
Ich möchte die if-Zeile auch mit der Variablen haben ($field), aber alles was ich versucht habe ging nicht. Wie bekomme ich das dort hin? -> if ($key == 'REX_VALUE[14]') echo '

Danke und herzlich
Heinz

Re: REX_VALUE dynamisch füllen

Verfasst: 16. Dez 2016, 01:44
von Cheffchen
Hallo,

das geht so nocht, da REX_VALUE[14] ja ein platzhalter ist und geparst wird bevor PHP ausgeführt wird.

Ein möglichkeit du liest die REX_VALUE[n] alle am anfang aus un pakst die in ein array oder veriable

Code: Alles auswählen

$values[1] = REX_VALUE[1];
$values[2] = REX_VALUE[2];
damit kannst ja dann weiter arbeiten.

Cheffchen

Re: REX_VALUE dynamisch füllen

Verfasst: 16. Dez 2016, 11:11
von erraiva
Hallo Cheffchen, danke für die rasche Antwort, ich habe es noch anders gelöst:

Die Funktion:

Code: Alles auswählen

<?php
// Funktion generiert beliebige Selects
function generateSelectFromArray($array,$opt,$sel){
echo '<select name="'.$sel.'" class="form-control">';
  foreach($array as $key => $value) {
  $selected = $key == $opt ? ' selected="selected"' : '';  
  echo '<option value="'.$key.'"'. $selected .'>'. $value .'</option>';
  }
echo '</select>';
}
?>
und im Aufruf drei Variablen: das Array, die Auswahl, den Selectnamen:

Code: Alles auswählen

<?php
$breite = array('col-md-12'=>'voll','col-md-6'=>'halb','col-md-4'=>'drittel','col-md-3'=>'viertel');
generateSelectFromArray($breite,'REX_VALUE[9]','REX_INPUT_VALUE[9]');
?>
Merci und Gruß
Heinz