[gelöst]Select Feld aus DB füllen
Eingetragen von Ati (210)
am 21.02.2011 - 14:44 Uhr in
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
$touren
ausgeben lassen? Vorzugsweise mit [do:devel Devel], alternativ auch mittels<?php drupal_set_message('<pre>'. var_export($touren, 1) .'</pre>'); ?>
.Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
var_export sagt Null
am 21.02.2011 - 16:00 Uhr
var_export sagt Null
Ich bin nicht doof....ich denk nur anders
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 bin nicht doof....ich denk nur anders
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
$touren
nicht 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),
);
?>
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
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.
Ich bin nicht doof....ich denk nur anders
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:
<?php
while ($row = db_fetch_object($result)) {
$touren[] = array ($row->tournr => $row->tournr) ;
}
?>
sowas machen:
<?php
while ($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
Ich bin nicht doof....ich denk nur anders