|
|
|
| продолжаю разбор каталога из книги, как организовать выпадающий список например материалов из БД, но не фиксированный как у Вас, а дополняемый? например появился новый материал и придётся перекраивать весь каталог начиная от добавления товарной позиции и кончая базой данный, куда проще былобы просто добавлять новые материалы в БД, а вот как их вывести? чем мне надо заменить
<td>
<select class=input type=text name=material>
<option value='mat1' <?php if($material == 'mat1') echo "selected"; ?>>материал1
<option value='mat2' <?php if($material == 'mat2') echo "selected"; ?>>материал2
</select>
</td>
|
что бы выводить всё имеющееся в базе не меняя файлов? | |
|
|
|
|
|
|
|
для: DreadfulS
(21.10.2006 в 10:52)
| | Обычно в этом случае (когда требуется добавлять, удалять или редактировать) типы материалов выносят в отдельную таблицу, а вместо поля ENUM вставляют вторичный ключ к таблице с матириалами, который ссылается на соответствющую запись. В этом случае выпадающий список формируется как обычно путём обработки SELECT-запроса к таблице материалов. | |
|
|
|
|
|
|
|
для: cheops
(21.10.2006 в 12:59)
| | так, со списком разобрался, получится что то вроде этого
<select name="id_mat">
<?
$query = mysql_query("SELECT *
FROM material
ORDER BY mat ASC");
while ($row = mysql_fetch_array($query)) {
$id_mat = $row['id_mat'];
$mat = $row['mat'];
if($id_mat != $id_mat){
echo "<option value=".$id_mat.">".$mat."</option>\n";
} else {
echo "<option value=".$id_mat." selected>".$mat."</option>\n";
}
}
?>
</select>
|
а как можно реализовать так что бы если нет необходимого материала то вписать нужное в соседней графе и что бы оно автоматом добавлялось в базу вместе с товарной позицией и в дальнейшем так же появлялось в списке? по возможности с примером... | |
|
|
|
|
|
|
|
для: DreadfulS
(21.10.2006 в 21:36)
| | Хм... приведите пожалуйста структуру таблицы material. | |
|
|
|
|
|
|
|
для: cheops
(21.10.2006 в 22:37)
| | material
id_mat
id_product
mat
и всё...
id_product как я понял понадобится для связи с таблицей product правда ещё не понял как это будет выглядеть на практике:) | |
|
|
|
|
|
|
|
для: DreadfulS
(21.10.2006 в 22:59)
| | UP - снова поднимаю эту тему, поскольку решения так и не нашёл( | |
|
|
|
|
|
|
|
для: DreadfulS
(25.10.2006 в 11:08)
| | А как у Вас выгядит форма? | |
|
|
|
|
|
|
|
для: Trianon
(25.10.2006 в 11:14)
| | а форма выглядит так:
<tr>
<td><p class=zag2>материал</td>
<td>
<select class=input type=text name=material>
<option value='pr' <?php if($material == 'pr') echo "selected"; ?>>ПР
<option value='pk' <?php if($material == 'pk') echo "selected"; ?>>ПК
<option value='pn' <?php if($material == 'pn') echo "selected"; ?>>ПН
<option value='pg' <?php if($material == 'pg') echo "selected"; ?>>ПГ
<option value='plodgrunt' <?php if($material == 'plodgrunt') echo "selected"; ?>>Плод.Грунт
<option value='torf' <?php if($material == 'torf') echo "selected"; ?>>Торф
<option value='grunt' <?php if($material == 'grunt') echo "selected"; ?>>Грунт
<option value='grav3x10' <?php if($material == 'grav3x10') echo "selected"; ?>>Щ.Грав 3/10
<option value='grav5x20' <?php if($material == 'grav5x20') echo "selected"; ?>>Щ.Грав 5/20
<option value='grav20x40' <?php if($material == 'grav20x40') echo "selected"; ?>>Щ.Грав 20/40
<option value='grav40x70' <?php if($material == 'grav40x70') echo "selected"; ?>>Щ.Грав 40/70
<option value='grav40x100' <?php if($material == 'grav40x100') echo "selected"; ?>>Щ.Грав 40/100
<option value='gran3x10' <?php if($material == 'gran3x10') echo "selected"; ?>>Щ.Гран 3/10
<option value='gran5x20' <?php if($material == 'gran5x20') echo "selected"; ?>>Щ.Гран 5/20
<option value='gran20x40' <?php if($material == 'gran20x40') echo "selected"; ?>>Щ.Гран 20/40
<option value='gran40x70' <?php if($material == 'gran40x70') echo "selected"; ?>>Щ.Гран 40/70
<option value='gran40x100' <?php if($material == 'gran40x100') echo "selected"; ?>>Щ.Гран 40/100
<option value='gran25x60' <?php if($material == 'gran25x60') echo "selected"; ?>>Щ.Гран 25/60
<option value='iz5x20' <?php if($material == 'iz5x20') echo "selected"; ?>>Щ.Из 5/20
<option value='iz20x40' <?php if($material == 'iz20x40') echo "selected"; ?>>Щ.Из 20/40
<option value='iz40x70' <?php if($material == 'iz40x70') echo "selected"; ?>>Щ.Из 40/70
<option value='iz40x100' <?php if($material == 'iz40x100') echo "selected"; ?>>Щ.Из 40/100
<option value='chernozem' <?php if($material == 'chernozem') echo "selected"; ?>>Чернозём
<option value='perevozka' <?php if($material == 'perevozka') echo "selected"; ?>>Перевозка
</select>
</td>
</tr>
|
| |
|
|
|
|
|
|
|
для: DreadfulS
(25.10.2006 в 11:08)
| | если нужного материала нет, заполняется текстовое поле рядом. при обработке формы вы
проверяете, если было заполнено это поле, то делаете дополнительный запрос и вставляете
новый материал в таблицу материалов. после этого он будет появляться в списке и для
ввода других товаров. потом берете последний id из таблицы материала и заносите его в
строку товара в таблице товаров, если поле не заполнено, ничего добавлять не нужно, а id
материала берете как value вашего списка. | |
|
|
|
|
|
|
|
для: elenaki
(25.10.2006 в 11:24)
| | спасибо, буду пробывать | |
|
|
|