Dinamikus adatfeltöltés egy SELECT mezőbe

HoLa képe

Jó napot!

Nekem van egy SELECT mezőm:

$form['mennyi']['feed_item_length'] = array(
  '#type' => 'select',
  '#title' => t('Hány darab'),
  '#required' => TRUE,
  '#default_value' => variable_get('feed_item_length','1'),
  '#options' => array(
    '1' => t('1 db'),
    '2' => t('2 db'),
    '3' => t('3 db'),
    'more' => t('több'),
  ),
);

és szeretnék a későbbiekben adatbázisból kiolvasott adatokkal feltölteni a lehetőségeket ('#options' => array() ), viszont nem tudom, hogyan lehetne ezt megvalósítani. Egyenlőre azzal próbálkoztam, hogy beletettem egy cikust:

$form['mennyi']['feed_item_length'] = array(
  '#type' => 'select',
  '#title' => t('Hány darab'),
  '#required' => TRUE,
  '#default_value' => variable_get('feed_item_length','1'),
  '#options' => array(
for ($f=1;$f<=$10;$f=$f+5) {
	$f => t($f.' db'),
  }
    'more' => t('több'),
  ),
);

for és while ciklussal is próbálkoztam, de egyik se működött. Hogyan oldhatnám meg ezt a problémát? esetleg utána kell valamilyne módon beletölteni az elemeket, vagy más szintaktika szükséges a cilusokhoz?

Köszönöm szépen a segítséget.

HoLa képe

elfelejtettem a hibaüzenetet ideírni, hátha segít a megoldásban:

Parse error: syntax error, unexpected T_FOR, expecting ')' in C:\wamp\www\holas\sites\all\modules\mymodule\mymodule.module on line 108

0
0
dj képe

követjük akkor is rossz ez a megoldás :)

A ciklus sem igazán világos, ha 1, 2, 3 és több amit akarsz akkor miért 1, 6 és több ciklusváltozókkal operálsz? Gondolom a $ a 10 elé csak véletlenül került oda.

<?php
$form['mennyi']['feed_item_length'] = array(
  '#type' => 'select',
  '#title' => t('How much'), /* angolul írjuk a fordítandót! */
  '#required' => TRUE,
  '#default_value' => variable_get('feed_item_length','1'),
  '#options' => array(),
);
 
for ($f=1;$f<=3;$f++)
  $form['mennyi']['feed_item_length']['#options']["$f"] = "$f ".t('pcs');
$form['mennyi']['feed_item_length']['#options']['more'] = t('more');
?>
<code>
 
Másik megoldás, hogy előre létrehozod a tömböt:
<code>
<?php
$options = array();
for ($f=1;$f<=3;$f++) $options["$f"] = "$f ".t('pcs');
$options['more'] = t('more');
 
$form['mennyi']['feed_item_length'] = array(
  '#type' => 'select',
  '#title' => t('How much'), /* angolul írjuk a fordítandót! */
  '#required' => TRUE,
  '#default_value' => variable_get('feed_item_length','1'),
  '#options' => $options,
);
?>
0
0

Üdv!
Dudás József

HoLa képe

köszönöm szépen, így tökéletesen működik :)

0
0