Selectfeld vorausfüllen lassen

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

  • Selectfeld vorausfüllen lassen

    Hi,

    bin bei meinem Versuch, ein Dropdownfeld nach einem Wert aus der DB vorausfüllen zu lassen, kläglioch gescheitert.

    Habs folgendermaßen versucht:

    1. Eine neue Funktion ähnlich der tz_select, die die Zeitzone auswählt in der includes/functions_selects.php eingefügt:

    PHP-Code:
    // 
    // Pick a cat, any cat ... 
    // 
    function cat_select($default$select_name "book_cat"

       global 
    $phpEx$phpbb_root_path$db

       
    $default '1'

       
    $sql "SELECT * 
            FROM " 
    BOOK_CATEGORIES_TABLE ""
       
    $result $db->sql_query($sql); 

       
    $cats = array(); 
       while ( 
    $row $db->sql_fetchrow($result) ) 
       { 
             
    $cats['name'] = $row['cat_name']; 
             
    $cats['id'] = $row['cat_id']; 
       } 

       @
    asort($cats); 
       @
    reset($cats); 

       
    $cat_select '<select name="' $select_name '">'
       while ( list(
    $cats['id'], $cats['name']) = @each($row) ) 
       { 
          
    $selected = ( $default == '1' ) ? ' selected="selected"' ''
          
    $cat_select .= '<option value="' $cats['id'] . '"' $selected '>'
    $cats['name'] . '</option>'
       } 
       
    $cat_select .= '</select>'

       return 
    $cat_select


    2. Die Funktion im Code berücksichtigt:

    PHP-Code:
    'CAT_SELECT' => cat_select('1''book_cat'), 
    3. den tpl-Code ausgegeben:

    Code:
       </tr> 
          <td class="row1">{L_CATEGORY}</td> 
          <td class="row2"> 
          {CAT_SELECT} 
          </td> 
       </tr>

    doch irgendwo muss da noch ein Haken liegen,denn ich bekomme lediglich eine leere Selectbox auf der Seite angezeigt!

    mfg Johny
    Zuletzt geändert von Johny; 09.05.2005, 09:55.

  • #2
    http://www.php-resource.de/forum/sho...threadid=50454
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      korrigiert

      mfg Johny

      Kommentar


      • #4
        wird denn $row richtig ermittelt?

        Kommentar


        • #5
          scheint zumindest so!

          Ich habe die Funktion zwischenzeitlich nochmals angepasst, aber sie zeigt noch einige Kuriositäten auf:

          PHP-Code:
          //
          // Pick a cat, any cat ...
          //
          function cat_select($oldcat$bookid$select_name "cat")
          {
          global 
          $db;

          $sql "SELECT cat_id, cat_name
          FROM " 
          BOOK_CATEGORIES_TABLE"
          ORDER BY cat_name, cat_id"
          ;
          if ( !(
          $result $db->sql_query($sql)) )
          {
          message_die(GENERAL_ERROR"Couldn't query book cat table"""__LINE____FILE__$sql);
          }

          $cat_select '<select name="' $select_name '">';
          while ( 
          $row $db->sql_fetchrow($result) )
          {
          //
          // Select Book's Cat
          //

          $sql2 "SELECT *
          FROM " 
          BOOKS_TABLE "
          WHERE book_id = '
          $bookid'";
          $result2 $db->sql_query($sql2);
              
          while ( 
          $row2 $db->sql_fetchrow($result2) )
          {
          if( 
          $row2['book_cat'] == $oldcat)
          {
          $selected "selected='selected'";
          }
          else
          {
          $selected "";
          }
              
          $cat_select .= '<option value="' $row['cat_id'] . '"' $selected '>'
          $row['cat_name'] . '</option>';
          }
          }
          $cat_select .= "</select>";

          return 
          $cat_select;

          die Kuriosität:

          bei einer Kategorie wird der Wert im Dropdownfeld richtig angezeigt, bei einer anderen wiederum nicht

          kann doch eigentlich nicht sein...weiß jemand Rat?

          Kommentar

          Lädt...
          X