Selectfeld aus Array generieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Selectfeld aus Array generieren

    Hi,

    ich versuche derzeit, ein Selectfeld aus einem Array zu generieren.
    Der derzeitige Funktionscode ist:

    PHP-Code:
     //
     // Auth Selection generate
     //
    function auth_select($auth_level$select_name 'auth')
    {

    $auth_select '<select name="' $select_name '">';
    $auths = array('ALL' => -1'REG' => 0'MOD' => 2'ADMIN' => 1);

    while( list(
    $output$auth_id) = @each($auths[]) )
    {
        if( 
    $auth_id == $auth_level)
        {
            
    $auth_select "<option value=" $auth_id " selected=selected>" $output "</option>";
        }
        else
        {
            
    $auth_select "<option value=" $auth_id ">" $output "</option>";
        }
    }
    $auth_select .= '</select>';

    return 
    $auth_select;

    am Ende soll eben das Selectfeld den Eintrag mit dem Wert $auth_level als Vorbelegung erhalten. Doch das Selectfeld, das erzeugt wird, ist leer.

    Woran liegt das?

  • #2
    while( list($output, $auth_id) = @each($auths[]) )
    ^^ das kann doch gar nicht gehen.
    Das hat zur Folge:
    PHP-Code:
    WarningVariable passed to each() is not an array or object 
    Doch das Selectfeld, das erzeugt wird, ist leer.
    Du hängst an $auths einen leeren Eintrag an und gibst Ihn dir wieder aus.


    So wäre es richtig:
    PHP-Code:
    $auth_select '<select name="' $select_name '">\n';
    $auths = array('ALL' => -1'REG' => 0'MOD' => 2'ADMIN' => 1);

    while( list(
    $output$auth_id) = each($auths) )
    {
        if( 
    $auth_id == $auth_level)
        {
            
    $auth_select .= "<option value=" $auth_id " selected=selected>" $output "</option>\n";
        }
        else
        {
            
    $auth_select .= "<option value=" $auth_id ">" $output "</option>\n";
        }
    }
    $auth_select .= '</select>\n'
    Zuletzt geändert von reallife; 30.10.2005, 11:19.

    Kommentar


    • #3
      1. keine @ verwenden, um Fehlermeldungen zu unterdrücken...

      2. in der Schleife muss auch .= stehen, sonst wird die Variable überschrieben.

      Kommentar

      Lädt...
      X