есть выпадающий список, выполненный на php, необходимо чтоб в "action" менялся фаил .php на соответствующий (Главная-add_homepage.php, Алгоритмы-add_algoritm.php, ТСД-add_tsd.php, Формализованные бланки-add_formblank.php) $choosing_db = array('0' => "Главная", '1' => "Алгоритмы", '2' => "ТСД", '3' => "Формализованные бланки");?>Выберите направление<br> <select><? for ($i = 0; $i < count($choosing_db); $i++){echo "<option>$choosing_db[$i]</option>";}?></select> <form name="form1" method="post" action="add_algoritm.php"> <p><label>Введите название документа<br /> <input name="title" type="text" id="title"></label></p> <p><label>Введите краткое описание документа<br /> <input name="meta_d" type="text" id="meta_d"></label></p> <p><label>Введите ключевые слова документа<br /> <input name="meta_k" type="text" id="meta_k"></label></p> <p><label>Введите дату добавления документа<br /> <input name="date" type="text" id="date"></label></p> <p><label>Введите краткое описание урока с тэгами абзацев<br /> <textarea name="description" cols="100" rows="5" id="description"></textarea></label></p> <p><label>Введите полный текст документа с тэгами<br /> <textarea name="text" cols="100" rows="20" id="text"></textarea></label></p> <p><label>Введите автора документа<br /> <input name="autor" type="text" id="autor"></label></p> <p><label> <input name="submit" type="submit" id="submit" value="Занести документ в базу"></label></p> </form>
1. оформляйте код в соответствующие теги, иначе невозможно читать 2. нужен ассоциативный массив PHP: $options = [ ['name'=> "Главная",'value' =>'add_homepage.php'], ['name' => "Алгоритмы", 'value' => 'add_algoritm.php'], ['name' => "ТСД", 'value' => 'add_tsd.php'], ['name' => "Формализованные бланки", 'value' => 'add_formblank.php'] ]; // вывод echo '<select name="select" id="select">'; foreach ($optiona AS $item) { echo "<option value="{$item['value']}">{$item['name']}</option>"; } echo "<select>"; 3. Нужна часть на JS - которая будет менять action Код (Javascript): $('#select').change(function(e){ var action = $(this).val(); $('form').attr('action',action); }) 4. Реально ли нужно это? зачем столько обработчиков? Если форма для всех одинакова, данные тоже - достаочно в один обработчик передать значение селекта - и уже в обработчике что-то менять
4. Реально ли нужно это? зачем столько обработчиков? Если форма для всех одинакова, данные тоже - достаочно в один обработчик передать значение селекта - и уже в обработчике что-то менять[/QUOTE] я недавно начал заниматься php ... как это сделать?
в чем отличия обработчиков у вас? Судя по тому что поля у формы не меняются - везде пишется в определенные таблицы, одинаковой структуры но с разными наименованиями, так?
так не делается... таблица - одна! Единственно добавьте доп поле type которо будет отвечать за то - к какому разделу она относится соответственно обработчик - один! type принимаете из selecta поля, action - не меняете, так как обработчик один
Таблицы разные. Так как разная информация, разные отделы, разные пользователи будут вносить инфу и не должны видеть информацию друг друга. Будет стоять парольная защита. --- Добавлено --- Задачи многие стоят. Поэтому необходимы разграничения по таблицам. --- Добавлено --- Мне необходимо сделать именно так. Вот и прошу помощи.
это всего лишь ваше представление, что таблицы должны быть разные.. и оно глубоко неверно. разграничение отлично делается и по одной таблице
таблица - одна! Единственно добавьте доп поле type которо будет отвечать за то - к какому разделу она относится соответственно обработчик - один! type принимаете из selecta поля, action - не меняете, так как обработчик один[/QUOTE] Спасибо! я понял о чем вы. Как реализовать?
Спасибо! я понял о чем вы. Как реализовать?[/QUOTE] куда добавлять type ? и как Это я понял. Как здесь реализовать? $options = [ ['name'=> "Главная",'value' =>'add_homepage.php'], ['name' => "Алгоритмы", 'value' => 'add_algoritm.php'], ['name' => "ТСД", 'value' => 'add_tsd.php'], ['name' => "Формализованные бланки", 'value' => 'add_formblank.php'] ]; // вывод echo '<select name="select" id="select">'; foreach ($optiona AS $item) { echo "<option value="{$item['value']}">{$item['name']}</option>"; } echo "<select>";
Спасибо! я понял о чем вы. Как реализовать?[/QUOTE] Как нибудь так. Код (Text): switch($post['type']) { case 'type_1': // type 1 here break; case 'type_2': // type 2 here break; } Если не секрет, вы подрабатываете/фрилансите или официально работаете php-кодером ?
Если не секрет, вы подрабатываете/фрилансите или официально работаете php-кодером ?[/QUOTE] я работаю в госструктуре... и как обычно ставят высокие планки.... с php я раньше не сталкивался.. и начинаю изучать... работаю над web мордой файловой помойки с информационной составляющей....
А чё ставке в час на гос апарате у веб-кодеров ? Я не могу оценить свой уровень до сих пор, хотя я фуллстак с огромным опытом.Если идти работать в компанию я даже незнаю какой зп достоин, и достоин ли
там не надо, от слова совсем просто делаете PHP: $options = [ ['name'=> "Главная",'value' =>'homepage'], ['name' => "Алгоритмы", 'value' => 'algoritm'], ['name' => "ТСД", 'value' => 'tsd'], ['name' => "Формализованные бланки", 'value' => 'formblank'] ]; JS не нужен, action менять не надо отсылаете данные куда-нибудь в один общий add.php все.... данные того что выбрали - передадутся туда, а там дальше сохраняйте
Как вариант и раскрывающийся список не нужен, тем более что кто-то заикался о разграничении доступа --- Добавлено --- Даже если не использовать зависящий от типа пользователя интерфейс, можно просто сделать ссылки на разные формы. Код при этом использовать обобщенный, если это целесообразно. --- Добавлено --- В G-Drive такое практически из коробки можно сделать. Списочек ссылок на формы достаточно захардкодить в каком-нибудь сайдбаре, хотя все расширяемо вплоть до динамики для неограниченного кол-ва таблиц – там и CMS примерно так работает. PHP: if ($_SERVER['REQUEST_METHOD']=='POST') { // пишем в $table($page['id']) redirect($_SERVER['REQUEST_URI']); // return; } Хотя, как уже написали, разные таблицы использовать не нужно в данном случае. Но если они уже есть, то можно.
P.S. В форме достаточно написать action="" (или action="#back"), так что она может быть полностью статической, если у вас нет полей для CSRF и т.п.