Применения массивов в php для формирования html списков


Периодически копаясь в чужом коде видишь такие перлы, что возникает вопрос как можно назвать человека который это написал. Для примера поставим некоторую абстрактную задачу в переменной $sel храниться значение выбранного элемента списка.

Необходимо вывести список и выделить там выбранный элемент. Вы будете смеяться, но очень часто задач решается в лоб, например, так:

  1. <?
  2. $sel=1;
  3. if ($sel==1) $s1=" selected";
  4. if ($sel==2) $s2=" selected";
  5. if ($sel==3) $s3=" selected";
  6. echo "<option value='1'$s1>Значение 1</option><option value='2'$s2>Значение 2</option><option value='3'$s3>Значение 3</option>";
  7. ?>

Более «продвинутые» могут написать так:

  1. <?
  2. $sel=1;
  3. echo "<option value='1'".($sel==1?" selected":"").">Значение 1</option><option value='2'".($sel==2?" selected":"").">Значение 2</option><option value='3'".($sel==1?" selected":"").">Значение 3</option>";
  4. ?>

И прочие вариации. На самом деле все намного проще, если использовать массивы. Использование массивов сделает код более понятным, прозрачным и в конце концов более расширяемым.
Для начало необходимо сформировать сам массив. В php это делается не просто, а очень просто. Для этого используется конструкция array(). Далее с помощью цикла foreach (почему его многие так боятся? Наверное не умеют готовить :-)) перебираем все элементы и выводим список. На словах все просто, но на практике еще проще:

  1. <?
  2. $sel=1;
  3. $asel=array(1=>'Значение 1', 2=>'Значение 2', 3=>'Значение 3',);
  4. foreach($asel as $key=>$value){
  5.   echo '<option value="'.$key.'"'.($key==$sel?' selected':'').">$value</option>";
  6. }
  7. ?>

Как видите, код получился прозрачный и легко расширяемый. А ведь в примере используется только три элемента. Какой способ использовать Вам решайте сами, если хотите предложить свои варианты, милости просим в комментарии.

Ну, а в качестве отдыха предлагаю посетить украинский сайт про футбол. Там кстати можно посмотреть футбол онлайн, да и почитать есть что. Лично мне понравилась статья «Маска, я тебя знаю!..». Интересно? Заходите и читайте.

Похожие записи:

Tags: , , ,

Leave a Reply