вопрос качается html форм, так что думаю не ошибся разделом форума
в скрипте генерирую списочек с атрибутом miltiselect. у некоторых опций ставлю атрибут Selected в скрипте, так что в htmlстраницы они так и прописаны. все отображается как надо.
НО должна быть возможность выбрать другие значения и засабмитить их на сервер. а у меня сабмитятся те опции который имеют атрибут selected. бесполезно выбирать другие.
подскажите как боротся. впринципе думаю уже о яваскрипте который будет составлять массивчик и писать его в скрытое поле.. но может как то проще сделать можно?
Спустя 16 часов, 20 минут, 5 секунд (18.04.2012 - 07:38) stasuss написал(а):
блииин.. неужели никто с этим не сталкивался?(((
Спустя 2 минуты, 29 секунд (18.04.2012 - 07:41) redreem написал(а):
покажи код.
Спустя 47 минут, 44 секунды (18.04.2012 - 08:28) stasuss написал(а):
вот скрипт
на выходе примерно такое
а вот форма
ява-скрипт просто проверяет некоторые поля на заполненность, список он не трогает..
извиняюсь что так длинно получилось)
<select size="7" multiple name="role[]">
<option <?php if (($currUser->getRole()&DMS_Core_User::role_reg)) echo 'selected="selected"' ?> value="<?php echo DMS_Core_User::role_reg ?>"><?php printMLText("role_reg"); ?></option>
<option <?php if (($currUser->getRole()&DMS_Core_User::role_help)) echo 'selected="selected"' ?> value="<?php echo DMS_Core_User::role_help ?>"><?php printMLText("role_help"); ?></option>
<option <?php if (($currUser->getRole()&DMS_Core_User::role_guest)) echo 'selected="selected"' ?> value="<?php echo DMS_Core_User::role_guest ?>"><?php printMLText("role_guest"); ?></option>
<option <?php if (($currUser->getRole()&DMS_Core_User::role_head)) echo 'selected="selected"' ?> value="<?php echo DMS_Core_User::role_head ?>"><?php printMLText("role_head"); ?></option>
<option <?php if (($currUser->getRole()&DMS_Core_User::role_perf)) echo 'selected="selected"' ?> value="<?php echo DMS_Core_User::role_perf ?>"><?php printMLText("role_perf"); ?></option>
<option <?php if (($currUser->getRole()&DMS_Core_User::role_cont)) echo 'selected="selected"' ?> value="<?php echo DMS_Core_User::role_cont ?>"><?php printMLText("role_cont"); ?></option>
<option <?php if (($currUser->getRole()&DMS_Core_User::role_admin)) echo 'selected="selected"' ?> value="<?php echo DMS_Core_User::role_admin ?>"><?php printMLText("role_admin"); ?></option>
</select>
на выходе примерно такое
<select size="7" multiple name="role[]">
<option value="1">Регистратор</option>
<option value="2">Помошник</option>
<option selected="selected" value="4">Гость</option>
<option value="8">Руководитель</option>
<option value="16">Исполнитель</option>
<option value="32">Контроллер</option>
<option value="64">Админ</option>
</select>
а вот форма
<form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form7" onsubmit="return checkForm('7');">
<!-- тут много инфы про пользователя, в том числе и список с ролями-->
<input type="Submit" value="Сохранить">
</form>
ява-скрипт просто проверяет некоторые поля на заполненность, список он не трогает..
извиняюсь что так длинно получилось)
Спустя 1 час, 16 минут, 47 секунд (18.04.2012 - 09:45) ИНСИ написал(а):
stasuss покажите php код, который обрабатывает форму. Имею в виду тот кусок, который принимает значение role.
Спустя 23 минуты, 5 секунд (18.04.2012 - 10:08) stasuss написал(а):
ааа... да дело не в нем. если создать юзера (при создании форма без предустановленых опций) то все окей
а вообще вот он
а вообще вот он
$role=0;
foreach ($_POST["role"] as $r){
$role|=(int)$r;
}
Спустя 11 минут, 38 секунд (18.04.2012 - 10:20) redreem написал(а):
Цитата |
selected="selected" |
:o
достаточно просто
<option selected value="4">Гость</option>
может в этом дело
Спустя 8 минут, 51 секунда (18.04.2012 - 10:29) glock18 написал(а):
Цитата (redreem @ 18.04.2012 - 08:20) |
может в этом дело |
ни разу не так
Цитата (redreem @ 18.04.2012 - 08:20) |
selected="selected" |
это как раз xml-валидная запись, в отличие от простого selected
Спустя 40 секунд (18.04.2012 - 10:29) stasuss написал(а):
Цитата (redreem @ 18.04.2012 - 08:20) | ||
достаточно просто <option selected value="4">Гость</option> может в этом дело |
сначала написал именно короткую форму.. пока лазил по инету заметил что пишут длинно иногда.. но в моем случае эти два варианта работают одинаково.
Спустя 49 секунд (18.04.2012 - 10:30) glock18 написал(а):
stasuss
у вас, вероятнее всего, логика обработки перепутана. скорее всего дефолтные значения выставляются до записи, и, вероятно, переписывают пришедшие на сервер
у вас, вероятнее всего, логика обработки перепутана. скорее всего дефолтные значения выставляются до записи, и, вероятно, переписывают пришедшие на сервер
Спустя 7 минут, 22 секунды (18.04.2012 - 10:37) stasuss написал(а):
Цитата (glock18 @ 18.04.2012 - 08:30) |
stasuss у вас, вероятнее всего, логика обработки перепутана. скорее всего дефолтные значения выставляются до записи, и, вероятно, переписывают пришедшие на сервер |
не очень понял.. ведь скрипт генерирует страницу с предустановлеными опциями и затем форма сабмитится.. по-логике я думал что если выбрать другие значения, то при сабмите предустановленные не будут браться во внимание.. но они берутся похоже...
и как с этим бороться не скажите? мне на ум приходит яваскрипт..
еще думал заменить на чекбоксы, но потом посетила мысль, а не будет ли там тоже самое с теми же предустановлеными значениями...
ЗЫ проверял в 9 експлорере, в последнем хроме и фаерфоксе. везде одинаково.. ведь не должно так быть блин... или должно?
ЗЫЫ посмотрел на заголовки. оказывается высылается на сервер все верно!!! а почему тогда у пхп скрипта в $_POST["role"] лежат старые значения??? Помогите нубу((((((
Спустя 50 минут, 13 секунд (18.04.2012 - 11:28) ИНСИ написал(а):
stasuss Попробуйте в обработчике вставить:
Если данные приходят верно, значит ваша обработка работает неверно.
exit(print_r($_POST['role']));
Если данные приходят верно, значит ваша обработка работает неверно.
Спустя 5 минут, 2 секунды (18.04.2012 - 11:33) ИНСИ написал(а):
Цитата |
$role|=(int)$r; |
Было бы интересно узнать, что вы хотите тут сделать?
Спустя 1 час, 2 минуты, 28 секунд (18.04.2012 - 12:35) stasuss написал(а):
Цитата (INSIDIOUS @ 18.04.2012 - 09:33) | ||
Было бы интересно узнать, что вы хотите тут сделать? |
тут происходит побитовое сложение идешников ролей. так как они представляют степень двойки то получается все окей. ибо ролей может быть несколько, а хранить я их хочу в одном поле бд)
Спустя 4 минуты, 59 секунд (18.04.2012 - 12:40) glock18 написал(а):
stasuss
ну, вы покажите скрипт. надеюсь, он небольшой. интересует
1. выставление дефолтных значений
2. запись в базу
3. обработка POST
UPD:
4. их порядок
ну, вы покажите скрипт. надеюсь, он небольшой. интересует
1. выставление дефолтных значений
2. запись в базу
3. обработка POST
UPD:
4. их порядок
Спустя 13 минут, 44 секунды (18.04.2012 - 12:54) stasuss написал(а):
блин оно по разным скриптам разбито.. у меня используется что то типа модели модель-контроллер-представление...
ну вообщем то ладно. попробую внимательно потупить над каждой строчечкой...
всем спасибо. убедили что таки глюк у меня в скрипте) да и сам я убедился посмотрев заголовки
ну вообщем то ладно. попробую внимательно потупить над каждой строчечкой...
всем спасибо. убедили что таки глюк у меня в скрипте) да и сам я убедился посмотрев заголовки