phpbar.de logo

Mailinglisten-Archive

[php] Schleife und "</option>"

[php] Schleife und "</option>"

Sebastian Mendel lists at sebastianmendel.de
Mit Mai 3 13:17:11 CEST 2006


Steffen Kother schrieb:
> Hallo Leute,
> 
> so langsam krieg ich hier noch die Krise.
> 
> In meinem Template habe ich für Auswahlboxen entsprechende Dummies, wie 
> diesen
> 
> <select name="KUNNR" class="KUNNR">
>  <option value="">{KUNNR}</option>
> </select>
> 
> Damit ist das Template erstmal regelkonform.
> 
> Im dazugehörigen Skript soll {KUNNR} nun ersetzt werden. Auch kein 
> Problem. Bevor ich in die Schleife gehe, wird ein leerer Eintrag 
> beendet:
> 
> $option = '&nbsp;</option>';
> 
> An diese Variable werden alle weiteren Einträge gekettet. Für "simple" 
> Sachen wie bei Datumsauswahlfeldern geht alles ohne Probleme, nur wenn 
> ich die Daten aus der Datenbank hole und das zurückgeleiferte Array 
> verwerte, bleibt immer ein schließender Tag (</option>) offen.
> 
> Hier mal die Problemfunktion:
> 
> function listKUNNR($value) {
>     $listKUNNR  = mysql::query('SELECT KUNNR, NAME1 FROM sap_data.kna1 
> ORDER BY KUNNR
>                                ASC');
>     $listKUNNR  = mysql::fetchAll($listKUNNR, NULL, NULL, MYSQL_ASSOC);
> 
>     $listKUNNR2 = array();
> 
>     //Alle unbenötigten Nummern entfernen und gekürzte Kundennummer festhalten
>     foreach($listKUNNR as $index) {
>         $KUNNR = abs($index['KUNNR']);
>         if (strlen($KUNNR) == 7 || strstr($KUNNR, 'CPD')) {
>             $index['absKUNNR'] = $KUNNR;
>             $listKUNNR2[]      = $index;
>         }
>     }
>     $anz_list = count($listKUNNR2);
> 
>     //<option>-Tags erzeugen
>     $option = '&nbsp;</option>';

$option = '&nbsp;';


>     foreach($listKUNNR2 as $kunnr => $index) {

$option .= '</option>';

>         $option.= '<option value="'.$index['KUNNR'].'"';
>         if (!empty($_POST[$value]) && $_POST[$value] == $index['KUNNR']) 
> {
>             $option.= ' selected="selected"';
>         }
>         $option.= '>'.$index['absKUNNR'].' '.htmlentities($index['NAME1']);
>     }
> 
>     return $option;
> }
> 
> Ich habe schon mit verschiedenen Varianten den Vergleich zw. $kunnr und 
> anz_list probiert, es bleibt immer ein </option> übrig...
> 
> Achja, $listKUNNR hat 2208 Einträge (1..2208), in $listKUNNR2 stehen 
> 1522 0..1521). Von daher stimmt der Vergleich ja...
> 
> Kann mir von euch jemand sagen, was ich übersehe? Oder woran die Säge 
> klemmt?

woran es klemmt hab ich jetzt nicht geschaut, aber ich würde es wie oben 
machen.

-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive