Здравствуйте, Бурляев.
Вы писали 4 ноября 2004 г. в 12:30:23 [GMT +2:00]:
>> Помогите разобраться с формой.
>> У меня есть форма. На ней присутствуют элементы: строка текста,
>> многострочный текст, чекбоксы для выбора нескольких опций.
>> Значение всех этих элементов необходимо хранить в БД MySQL.
>> Отсюда и возникли у меня вопросы.
>>
БВ> Ну прежде всего про названия чекбоксов. Лучше их сделать массивом.
БВ> <input type=checkbox name=primer[0]>
БВ> <input type=checkbox name=primer[1] checked>
БВ> <input type=checkbox name=primer[2]>
БВ> ну и т.д.
БВ> Дело в том, что в php значения checkbox передаются в практически в
БВ> логическом виде (если checkbox пуст, то передаётся false, если отмечен, то
БВ> передаётся значение On)
БВ> Тогда если у тебя есть три вышеназванных чекбокса, то в сценарий php
БВ> передастся такой массив: $primer=array{false,On,false}
БВ> тогда в цикле обрабатываешь данные:
БВ> for($i=0;$i<count($primer);$i++) {
БВ> if(isset($primer[$i])) { /*Блок необходимых операторов*/ }
БВ> }
Тут мне пока понятно. Спасибо.
А если ComboBox ? Он передаст в скрипт только то, что выбрано ?
Например, в КомбоБоксе есть значения "Украина","Россия","СНГ"... и
выбрано было "Украина", тогда в РНР будет $Primer="Украина";
Так что ли ?
>> 1. Какие должный быть поля для хранения чекбоксов ? Например, на форме
>> есть раздел "Языки программирования" и Юзер должен указать, какие
>> именно он знает языки, т.е. поставить галочки в этих чекбоксах.
>> Как на РНР проверить, какие именно он поставил галочки и как их
>> потом записать в БД. Как работать с БД я знаю. Меня интересует сама
>> логика обработки этих чекбоксов и какой тип поля лучше для этого
>> подходит ?
>>
БВ> А вот про поля, ну тут уже от структуры базы зависит. Можно сделать в
БВ> таблице количество полей равный количеству чекбоксов и записывать в них
БВ> чё-нибудь (да хоть цифры 1-0, хоть строки On-false, хоть логическими поля
БВ> сделать, хоть любые другие предложения)
БВ> А можно отдельную таблицу для чекбоксов:
БВ> idrec - номер записи
БВ> iduser - код пользователя
БВ> idform - код формы из которой записываются чекбоксы (в принципе на сайте
БВ> может быть несколько таких форм)
БВ> idcheck - код чекбокса (такой же, каким номером он обозначен в форме)
БВ> value - значение (тут уже я говорил, можно написать что угодно)
Нет, такой вариант мне не подходит. У меня одна таблица, где и должны
храниться все данные формы.
Если использовать поля типа Enum для ComboBox и Set для CheckBox ?
С такими типами полей я никогда не сталкивался и не знаю как они
работают. Можно ли их к этому делу приобщить ?
>> 2. Как сделать обратное: прочитав данные из БД программно
>> установить нужные чекбоксы при просмотре этой формы ?
>>
БВ> ну а обратная ситуация надеюсь понятна, что надо выбрать SELECT-ом
БВ> информацию о чекбоксах для требуемой формы и если значения имеют
БВ> определённое заранее значение, то вставить в форму у чекбокса слово checked
А как правильней вставить данные на форму:
1. <?PHP $Primer="Чего-нибудь из БД">
<input type="Text" name="ProgramLang" value=$Primer>
2.
<input type="Text" name="ProgramLang" value=<?PHP
$Primer="Чего-нибудь из БД"> >
Можно ли в CheckBox-е вместо добавления слово Checked, присваивать
Value = "Yes" ?
И тогда, имея массив Arr, в котором есть (false, true, true, false),
написать следующие :
<input type="Checkbox" name=Arr value=Arr[0]>
<input type="Checkbox" name=Arr value=Arr[1]>
<input type="Checkbox" name=Arr value=Arr[2]>
<input type="Checkbox" name=Arr value=Arr[3]>
Будут ли в таком случае второй и третий чекбоксы отмечены или нет ?