<?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] многа многа раз…
а вот как бы туда данные запихнуть?
30 мая 2008 в 13:05
Не за что. Вот вам кусок кода (на работе так делаю) для selected (Java, но не суть):
<%
for (Region region : Region.getAllRegions()) {
%>
<option value="<%= region.getName()%>"
<%
if(adminToEdit.getRegion().equals(region)){
%>
selected="selected"
<%
}
%>
><%= region.getTitle()%></option>
<%
}
%>
Вкратце: окно редактирования профиля админа главным админом; есть список регионов, по ним делается перебор for-each, и если регион админа совпадает с текущим то мы пишем selected и опция оказывается выбранной.
30 мая 2008 в 10:03
Большущее Спасибо!
продолжаю мучать select дальше, на момент selected Ж)
30 мая 2008 в 0:04
print('<OPTION> $line[0]') ;
вообще не сработает в принципе — переменные не обрабатываются в строках в апострофах, плюс массивы надо писать иначе. вот так:
print("<option value=\"${line[0]}\">${line[0]}</option>");
или эхой:
echo "<option value=\"${line[0]}\">${line[0]}</option>";
29 мая 2008 в 19:04
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>';