phpbar.de logo

Mailinglisten-Archive

[php] Schleife und "</option>"

[php] Schleife und "</option>"

Steffen Kother steffen.kother at gmx.net
Mit Mai 3 13:08:01 CEST 2006


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>';
    foreach($listKUNNR2 as $kunnr => $index) {
        $option.= '<option value="'.$index['KUNNR'].'"';
        if (!empty($_POST[$value]) && $_POST[$value] == $index['KUNNR']) 
{
            $option.= ' selected="selected"';
        }
        $option.= '>'.$index['absKUNNR'].' 
'.htmlentities($index['NAME1']);
        if ($kunnr < $anz_list) {
            $option.= '</option>';
        }
    }

    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?

Schon mal besten Dank an euch.
-- 
Mit freundlichen Grüßen / Kind regards

Steffen Kother 


php::bar PHP Wiki   -   Listenarchive