singlepost

правильный select << На главную или назад  

<?php
require_once('connect.php');
mysql_query("SET NAMES 'cp1251'");

$sql="SELECT name FROM client";
$data=mysql_query($sql);
$line=mysql_fetch_row($data);

print('<SELECT NAME="Companys">\n');
while ($line=mysql_fetch_row($data))
{
print('<OPTION> $line[0]');
}
print("</SELECT>\n");
?>

и в поле СЕЛЕКТ строка $line[0] многа многа раз…
а вот как бы туда данные запихнуть?

4 ответов в теме “правильный select”

  1. 4
    Дима Тихвинский ответил:

    Не за что. Вот вам кусок кода (на работе так делаю) для selected (Java, но не суть):
    <%
    for (Region region : Region.getAllRegions()) {
    %>
    <option value="<%= region.getName()%>"
    <%
    if(adminToEdit.getRegion().equals(region)){
    %>
    selected="selected"
    <%
    }
    %>
    ><%= region.getTitle()%></option>
    <%
    }
    %>

    Вкратце: окно редактирования профиля админа главным админом; есть список регионов, по ним делается перебор for-each, и если регион админа совпадает с текущим то мы пишем selected и опция оказывается выбранной.

  2. 3
    Прохор Руднев ответил:

    Большущее Спасибо!
    продолжаю мучать select дальше, на момент selected Ж)

  3. 2
    Дима Тихвинский ответил:

    print('<OPTION> $line[0]') ;
    вообще не сработает в принципе — переменные не обрабатываются в строках в апострофах, плюс массивы надо писать иначе. вот так:
    print("<option value=\"${line[0]}\">${line[0]}</option>");
    или эхой:
    echo "<option value=\"${line[0]}\">${line[0]}</option>";

  4. 1
    Егор Яковишен ответил:

    1. option надо закрывать (/option)
    2. html-теги надо писать в нижнем регистре (select,option)
    3. Чтобы вместо $line[0] было значение элемента массива, нужно заменить апострофы на двойные кавычки (") или (ещё лучше) конкатенцию: print '<option>'.$line[0].'</option>';
    4. Рекомендую использовать mysql_fetch_assoc вместо mysql_fetch_row
    5. Зачем делается mysql_fetch_row в самый первый раз, сразу после запроса?
    6. У <option> должен быть value

    echo '<select name="companies">'."\n";

    while ($line = mysql_fetch_assoc($data))
    {
    echo "\n\t".'<option value="'.$line['name'].'">;
    echo $line['name'];
    echo '</option>';
    }

    echo "\n".'</select>';

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.