[gelöst]Select Feld aus DB füllen
am 21.02.2011 - 14:44 Uhr in
Hallo zusammen,
ich möchte ein "Select"-Feld mit eine DB-Abfrage füllen. Das ganze klappt eigentlich auch ganz gut bissl auf eine Kleinigkeit.
Wenn der User das Dropdown-Feld anklickt bekommt er nicht nur die Touren zu sehen, sondern sowas hier in der Art:
0
501
1
502
2
503
usw.
Ich will aber nur die Tourenbezeichnung (z.B. 501,502 etc) anzeigen. Hier mal mein aktueller Code!
function lsrouting_my_form($form_state) {
$result = db_query('Select tournr from touren');
while ($row = db_fetch_object($result)) {
$touren[] = array ($row->tournr => $row->tournr) ;
}
$form['tour']= array(
'#type' => 'select',
'#title' => t('Tour'),
'#default_value' => $_SESSION['tour'],
'#options' => $touren,
'#required' => TRUE,
'#description' => t('Bitte Tournummer angeben!!'),
);Kann ja mal wieder nur ne Kleinigkeit sein.
Ati
- Anmelden oder Registrieren um Kommentare zu schreiben

debug
am 21.02.2011 - 15:07 Uhr
Hallo.
Hast Du Dir mal die Variable
$tourenausgeben lassen? Vorzugsweise mit [do:devel Devel], alternativ auch mittels<?php drupal_set_message('<pre>'. var_export($touren, 1) .'</pre>'); ?>.Stefan
var_export sagt Null
am 21.02.2011 - 16:00 Uhr
var_export sagt Null
Ich habe mal ein Bild
am 21.02.2011 - 16:36 Uhr
Ich habe mal ein Bild angehängt damit man mal sieht wie das Dropdownfeld zur Zeit aussieht!
Ich würde sagen, deine
am 21.02.2011 - 16:49 Uhr
Ich würde sagen, deine Abfrage fragt ja auch nur die Tournr ab.
Komisch, dass die Tourbezeichnung überhaupt angezeigt wird.
debug
am 21.02.2011 - 17:24 Uhr
var_export sagt Null
Wenn Du das hier machst:
<?php
function lsrouting_my_form($form_state) {
$result = db_query('Select tournr from touren');
$touren = array(); // Variablen werden immer initialisiert!
while ($row = db_fetch_object($result)) {
$touren[] = array ($row->tournr => $row->tournr) ;
}
drupal_set_message('<pre>'. var_export($touren, 1) .'</pre>');
$form['tour']= array(
'#type' => 'select',
'#title' => t('Tour'),
'#default_value' => $_SESSION['tour'],
'#options' => $touren,
'#required' => TRUE,
'#description' => t('Bitte Tournummer angeben!!'),
);
}
?>
kann
$tourennicht NULL sein, solange das Feld Werte enthält. Dem Screenshot nach zu urteilen beinhaltet die Variable diese Werte:<?php$touren = array(
array(501),
array(502),
array(503),
array(504),
array(505),
array(506),
array(507),
);
?>
Sorry kam jetzt erst dazu
am 22.02.2011 - 16:49 Uhr
Sorry kam jetzt erst dazu mich wieder diesem Projekt zu widmen.
Im Anhang mal ein Screenshot nach Deinem Quellcode.
Es ergibt sich also genau das
am 22.02.2011 - 17:55 Uhr
Es ergibt sich also genau das Array, das Stefan genannt hat.
Sind die Tour-Nummern (501, 502 usw.) einzigartig?
Wenn ja, warum speicherst du dann jede Tour-Nummer im Array $touren nochmal als extra Array ab?
Wenn die Tour-Nummern einzigartig sind, dann kannst du doch einfach aus diesem Teil:
<?phpwhile ($row = db_fetch_object($result)) {
$touren[] = array ($row->tournr => $row->tournr) ;
}
?>
sowas machen:
<?phpwhile ($row = db_fetch_object($result)) {
$touren[$row->tournr] = $row->tournr;
}
?>
Das ergibt dann dieses Array:
<?php$touren == array(501 => 501, 502 => 502, 503 => 503, 504 => 504, 505 => 505, 506 => 506, 507 => 507);
?>
Moin, da habe ich wohl mal
am 23.02.2011 - 09:28 Uhr
Moin,
da habe ich wohl mal wieder viel zu kompliziert gedacht (ist ein Talent von mir).
Danke Exterior...funktioniert bestens!!
Ati