Выпадающий список и selected из MySQL

Тема в разделе "PHP", создана пользователем parks, 17 май 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. parks

    parks

    Регистр.:
    18 сен 2008
    Сообщения:
    424
    Симпатии:
    60
    Здраствуйте. :) Нужно реализовать следующее....
    Есть выпадающий список
    PHP:
    <select name="format" size="1">
    <
    option value="CAMRip">CAMRip</option>
    <
    option value="TSrip">TSrip</option>
    <
    option value="DVDRip" >DVDRip</option>
    <
    option value="HDRip">HDRip</option>
    </
    select>
    есть переменная
    PHP:
    $format $myrow["format"];
    //переменная имеет значение к примеру DVDRip
    Как сделать что бы строчке <option value="DVDRip" >DVDRip</option> было присвоено selected. Или как это вообще делается :)
     
  2. ivashka

    ivashka

    Регистр.:
    16 май 2007
    Сообщения:
    151
    Симпатии:
    15
    Делается очень просто.
    Код:
    <?
    $format = $myrow["format"];
    switch ($format)
       case "Camrip":
          $selected = 'selected';
          break;
       case "TSrip":
          $selected = 'selected';
          break;
    //и т.д.
    } 
    $body = '
    <select name="format" size="1">
    <option value="CAMRip" '.$selected.'>CAMRip</option>
    <option value="TSrip" '.$selected.'>TSrip</option>
    </select>  
    ';
    print $body;
    ?>
    Вот и все. Думаю все тут понятно :)
    А вобще нужно читать про switch. Удобная штука.
     
  3. parks

    parks

    Регистр.:
    18 сен 2008
    Сообщения:
    424
    Симпатии:
    60
    Там в начале { нехватает я так понял , но не в этом деле , чёто непашет.....:nezn:
    Выводит
    PHP:
    <select name="format" size="1">
    <
    option value="CAMRip" selected>CAMRip</option>
    <
    option value="TSRip" selected>TSRip</option>
    <
    option value="DVDRip" selected>DVDRip</option>
    <
    option value="HDRip" selected>HDRip</option>
    </
    select>  
    Тоесть получается selected ставит везде......
     
  4. PhantomUA

    PhantomUA Инквизитор

    Moderator
    • Супермодератор
    Регистр.:
    2 июл 2006
    Сообщения:
    759
    Симпатии:
    1.640
    PHP:
    <?php
    function listbox($name$listarray$selected "")
    {
        
    $listbox '<select name="' $name '">';
        while (list(
    $key$val) = each($listarray)) 
        {
            
            if (
    $val == $selected)
            {
                
    $listbox $listbox '<option value="' $val '"  selected="selected">' $val '</option>';
            }else{
                
    $listbox $listbox .  '<option value="' $val '">' $val '</option>';
            }            
        }
        
    $listbox $listbox .  '</select>';
        return 
    $listbox;
    }
    $sel=$myrow["format"]; // Получаем с базы
    $format= array (
            
    '1' => 'CAMRip',
            
    '2' => 'TSRip',
            
    '3' => 'DVDRip',
            
    '4' => 'HDRip'
            
    );
    echo 
    listbox ('format',$format,$sel)    ; // вывод select
    ?>
     
    parks нравится это.
  5. jo0o00nyy

    jo0o00nyy Постоялец

    Регистр.:
    12 май 2010
    Сообщения:
    65
    Симпатии:
    27
    Попробуй так...
    PHP:
    <?php $format $myrow["format"];?>
    <select name="format" size="1">
    <option value="CAMRip" <?php if($format == 'CAMRip') echo 'selected'?>>CAMRip</option>
    <option value="TSrip" <?php if($format == 'TSrip') echo 'selected'?>>TSrip</option>
    <option value="DVDRip" <?php if($format == 'DVDRip') echo 'selected'?>>DVDRip</option>
    <option value="HDRip" <?php if($format == 'HDRip') echo 'selected'?>>HDRip</option>
    </select>
     
    parks нравится это.
  6. ivashka

    ivashka

    Регистр.:
    16 май 2007
    Сообщения:
    151
    Симпатии:
    15
    Да поспешил однако...
    PHP:
    <?
    $format $myrow["format"];
    switch (
    $format)
    {
       case 
    "Camrip":
          
    $selected_cam 'selected';
          break;
       case 
    "TSrip":
          
    $selected_ts 'selected';
          break;
    //и т.д.

    $body '
    <select name="format" size="1">
    <option value="CAMRip" '
    .$selected_cam.'>CAMRip</option>
    <option value="TSrip" '
    .$selected_ts.'>TSrip</option>
    </select>  
    '
    ;
    print 
    $body;
    ?>
    вот так нужно...
     
  7. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    Вариант:
    PHP:
    <?php
    $format 
    $myrow["format"];
    $txt='<select name="format" size="1">';
    $array=array('CAMRip','TSrip','DVDRip','HDRip');
    while(list(
    $key,)=each($array)) {
      if(
    $key==$format$txt.='<option selected>'.$key.'</option>';
      else 
    $txt.='<option>'.$key.'</option>';
    }
    $txt.='</select>';
    echo 
    $txt;
    ?>
     
  8. D@nil

    D@nil

    Регистр.:
    1 окт 2006
    Сообщения:
    338
    Симпатии:
    122
    Немного подправленный код от Yaggi Jah будет самым оптимальным
    PHP:
    <select name="format" size="1">
    <?php
    $array
    =array('CAMRip','TSrip','DVDRip','HDRip');
    foreach(
    $array as $key
    echo 
    '<option'. ($key==$myrow["format"] ? 'selected' '' ).'>'.$key.'</option>';

    ?>    </select>            
     
Статус темы:
Закрыта.