1. PHP / Говнокод #140

    +104.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    echo “<select id=\”seltel[".$i."]\”>”;
    switch ($data2["PHONE"][$i]["type"]) {
    case “Факс”:
    echo “<option selected>Факс”;
    echo “<option>Офисный телефон”;
    echo “<option>Колцентр”;
    echo “<option>Телефон”;
    echo “<option>Мобильный телефон”;
    break;
    case “Офисный телефон”:
    echo “<option>Факс”;
    echo “<option selected>Офисный телефон”;
    echo “<option>Колцентр”;
    echo “<option>Телефон”;
    echo “<option>Мобильный телефон”;
    break;
    case “Колцентр”:
    echo “<option>Факс”;
    echo “<option>Офисный телефон”;
    echo “<option selected>Колцентр”;
    echo “<option>Телефон”;
    echo “<option>Мобильный телефон”;
    break;
    case “Телефон”:
    echo “<option>Факс”;
    echo “<option>Офисный телефон”;
    echo “<option>Колцентр”;
    echo “<option selected>Телефон”;
    echo “<option>Мобильный телефон”;
    break;
    case “Мобильный телефон”:
    echo “<option>Факс”;
    echo “<option>Офисный телефон”;
    echo “<option>Колцентр”;
    echo “<option>Телефон”;
    echo “<option selected>Мобильный телефон”;
    break;
    };
    echo “</select><br/>”;

    вот как надо создавать выпадающие списки!

    Запостил: guest, 12 Декабря 2008

    Комментарии (17) RSS

    • страйко:
      бггг, атас!
      Ответить
    • Dr.Freez:
      страйко пади сам такие конструкции юзает)
      Ответить
    • M-K:
      Тут надо поменьше echo и побольше нормального HTML? Или что-то еще не так?
      Ответить
    • страйко:
      [quote=M-K]
      Тут надо поменьше echo и побольше нормального HTML? Или что-то еще не так?
      [/quote]
      тут достаточно задать список значений выпадающего списка и уже выбирать к какому из них делать selected.
      Ответить
    • Батько:
      а я бы так и сделал =]
      Ответить
    • chiro:
      Ярко))
      Ответить
    • Говноодмин:
      #5 Батько, поздравляем, вы можете высылать на свои работы
      Ответить
    • крабик в гробике:
      Них-чево в программировании не понимаю(быдлокодер), я бы сделал так:
      [code=php]
      /* Автор не знает, чем отличаются одинарные кавычки от двойных(знаков дюйма), переписано под одинарные: строки записаные в одинарные кавычки + конкатенация через точку — поднимает производительность. */
      $phone_type = array('телефон','Факс','Офисный' 'телефон','Колцентр','Телефон','Мобильны й телефон'); /* Ага, одно с большой буквы, другое — с маленькой. Татьяныч бы за такое убил */

      switch ($data2["PHONE"][$i]["type"]) {
      case 'Факс':
      $list_selected = 1;
      break;
      case 'Офисный телефон':
      $list_selected = 2;
      break;
      case 'Колцентр':
      $list_selected = 3;
      break;
      case 'Телефон':
      $list_selected = 4;
      break;
      case 'Мобильный телефон':
      $list_selected = 5;
      break;
      } /* после фигурной скобки точка-с-запятой не ставится, или я вообще забыл, как_это_было_на_самом_деле?.. */

      echo '<select id="seltel['.$i.']">'; /* Видимо, автора задолбали переменные, которые он наплодил, и он ничего не знает про область видимости, и его фантазия в придумывании переменных закончилась. Ну и он всю форму засовывает в ячейки массива */

      foreach($phone_type as $list_item) {
      $i = 0; $i++;
      $option_selected = '';
      if($i === $list_selected) $option_selected = ' selected="selected"';
      echo '<option'.$option_selected.'>'.$list_ite m.'</option>';
      }
      echo '</select><br />';
      [/c
      Ответить
    • крабик в гробике:
      $i = 0;
      $i = 0;

      там ещё есть такой указатель в пхп, чтоб переменная присваивалась только один раз, я его забыл
      Ответить
    • крабик в гробике:
      А вообще эпичный говнокод, ржалъ!!
      не, всё-таки я неправ, там в последнем цикле надо поставить вначале $i=1; а в конце цикла ставить инкремент.
      Ответить
    • крабик в гробике:
      Них-чево в программировании не понимаю(быдлокодер), я бы сделал так:
      /* Автор не знает, чем отличаются одинарные кавычки от двойных(знаков дюйма), переписано под одинарные: строки записаные в одинарные кавычки + конкатенация через точку - поднимает производительность. */
      $phone_type = array('Факс','Офисный','Колцентр','Телефон','Мобильный телефон');
      
      switch ($data2["PHONE"][$i]["type"]) {
      case 'Факс':
      $list_selected = 1;
      break;
      case 'Офисный телефон':
      $list_selected = 2;
      break;
      case 'Колцентр':
      $list_selected = 3;
      break;
      case 'Телефон':
      $list_selected = 4;
      break;
      case 'Мобильный телефон':
      $list_selected = 5;
      break;
      } /* после фигурной скобки точка-с-запятой
      не ставится, или я вообще забыл, как_это_было_на_самом_деле?.. */
      
      echo '<select id="seltel['.$i.']">'; /*
      Видимо, автора задолбали переменные, которые он наплодил, и он ничего не знает про область видимости, и его фантазия в придумывании переменных закончилась. Ну и он всю форму засовывает в ячейки массива */
      
      foreach($phone_type as $list_item) {
          $i = 1;
          $option_selected = '';
          if($i === $list_selected)
          $option_selected = 
          ' selected="selected"';
          echo '<option'.$option_selected.'>'
          .$list_item.'</option>';
          $i++;
      }
      echo '</select><br />';


      Извините за быдлокод, изучал ПХП поверхностно, высшей математики не знаю.

      Там
      Ответить
      • >высшей математики не знаю.
        Она ведь просто необходима, чтобы написать выпадающий список!
        Ответить
    • $phone_type = array('Факс','Офисный','Колцентр','Телефон','Мобильный телефон');
      echo '<select id="seltel['.$i.']">'; 
      foreach($phone_type as $list_item) {
          $option_selected =($data2["PHONE"][$i]["type"] == $list_item)?  ' selected="selected"': '';
          echo "<option $option_selected>$list_item</option>";// можно и в одну строчку
      }
      echo '</select><br />';

      mapron
      Ответить
      • $phone_type = array('Факс','Офисный','Колцентр','Телеф он','Мобильный телефон');
        $option_selected[$data2["PHONE"][$i]["type"]]='selected';
        foreach($phone_type as $list_item) $options.='<option '.$option_selected[$list_item].'>'.$list_item.'</option>';
        echo '<select id="seltel['.$i.']">'.$options.'</select>';
        Ответить
    • Сцуко, не перевелись еще вундеркинды.
      Сий ГК неоправданно обделен в оценках (+81.3 на момент данного коммента вместе с моим голосом), как минимум раз в 10. Это же жемчужина среди всех говнокодов!
      Ответить
    • $contacts = array('Факс','Офисный','Колцентр','Телефон','Мобильный телефон');
      $out =  '<select id=”seltel['.$i.']”>';
      foreach($contacts as $contact) {
          $selected = $contact==$data2["PHONE"][$i]["type"] ? ' selected="selected"' : '';
          $out .= '<option'. $selected.'>'.$contact.'</options>';
      }
      $out .= '</select>';
      echo $out;
      Ответить
      • Иди на хуй придурок, там, видимо, не в одном месте эта дрянь:
        function buildSelect( $i, $ar=array(), $sel=null ) {
          $out = array();
          foreach($ar as $v) 
              $out[] = "<option" . (($sel==$v)? ' selected':'') . ">$v</options>";
        
        return "<select id=\"seltel[$i]\">" . implode('', $out) . "</select>";
        }
        // ...
        $contacts = array('Факс','Офисный','Калцентр','Телефон','Мобильный телефон');
        echo buildSelect( $i, $contacts, $data2["PHONE"][$i]["type"]);
        Ответить

    Добавить комментарий