За последние 24 часа нас посетили 22879 программистов и 1222 робота. Сейчас ищут 749 программистов ...

Нужна помощь как внести данные в определенную таблицу БД

Тема в разделе "PHP для новичков", создана пользователем Mixupp, 11 окт 2021.

  1. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    есть выпадающий список, выполненный на 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>
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    1. оформляйте код в соответствующие теги, иначе невозможно читать
    2. нужен ассоциативный массив
    PHP:
    1. $options = [
    2.   ['name'=> "Главная",'value' =>'add_homepage.php'],
    3.   ['name' => "Алгоритмы", 'value' => 'add_algoritm.php'],
    4.   ['name' => "ТСД", 'value' => 'add_tsd.php'],
    5.   ['name' => "Формализованные бланки", 'value' => 'add_formblank.php']
    6. ];
    7. // вывод
    8. echo '<select name="select" id="select">';
    9. foreach ($optiona AS $item) {
    10.   echo "<option value="{$item['value']}">{$item['name']}</option>";
    11. }
    12. echo "<select>";
    3. Нужна часть на JS - которая будет менять action
    Код (Javascript):
    1. $('#select').change(function(e){
    2.    var action = $(this).val();
    3.    $('form').attr('action',action);
    4. })
    4. Реально ли нужно это? зачем столько обработчиков? Если форма для всех одинакова, данные тоже - достаочно в один обработчик передать значение селекта - и уже в обработчике что-то менять
     
    Mixupp нравится это.
  3. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    4. Реально ли нужно это? зачем столько обработчиков? Если форма для всех одинакова, данные тоже - достаочно в один обработчик передать значение селекта - и уже в обработчике что-то менять[/QUOTE]

    я недавно начал заниматься php ... как это сделать?
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    в чем отличия обработчиков у вас? Судя по тому что поля у формы не меняются - везде пишется в определенные таблицы, одинаковой структуры но с разными наименованиями, так?
     
  5. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0

    Да все верно.
    --- Добавлено ---

    А отличия информация добавляется на разные страницы сайта
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    так не делается...

    таблица - одна! Единственно добавьте доп поле type которо будет отвечать за то - к какому разделу она относится
    соответственно обработчик - один! type принимаете из selecta поля, action - не меняете, так как обработчик один
     
    Mixupp нравится это.
  7. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0


    Таблицы разные. Так как разная информация, разные отделы, разные пользователи будут вносить инфу и не должны видеть информацию друг друга. Будет стоять парольная защита.
    --- Добавлено ---


    Задачи многие стоят. Поэтому необходимы разграничения по таблицам.
    --- Добавлено ---


    Мне необходимо сделать именно так. Вот и прошу помощи.
     
  8. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    это всего лишь ваше представление, что таблицы должны быть разные.. и оно глубоко неверно.
    разграничение отлично делается и по одной таблице
     
  9. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    таблица - одна! Единственно добавьте доп поле type которо будет отвечать за то - к какому разделу она относится
    соответственно обработчик - один! type принимаете из selecta поля, action - не меняете, так как обработчик один[/QUOTE]


    Спасибо! я понял о чем вы. Как реализовать?
     
  10. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    ну "кашку уж за вас жевать" не буду, я уже написал как - добавьте дополнительное поле в таблицу
     
  11. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    Спасибо! я понял о чем вы. Как реализовать?[/QUOTE]
    куда добавлять type ? и как
    Это я понял.

    Как здесь реализовать?
    1. $options = [
    2. ['name'=> "Главная",'value' =>'add_homepage.php'],
    3. ['name' => "Алгоритмы", 'value' => 'add_algoritm.php'],
    4. ['name' => "ТСД", 'value' => 'add_tsd.php'],
    5. ['name' => "Формализованные бланки", 'value' => 'add_formblank.php']
    6. ];
    7. // вывод
    8. echo '<select name="select" id="select">';
    9. foreach ($optiona AS $item) {
    10. echo "<option value="{$item['value']}">{$item['name']}</option>";
    11. }
    12. echo "<select>";
     
  12. Sviridov

    Sviridov Новичок

    С нами с:
    22 сен 2021
    Сообщения:
    24
    Симпатии:
    4

    Спасибо! я понял о чем вы. Как реализовать?[/QUOTE]
    Как нибудь так.
    Код (Text):
    1.  
    2. switch($post['type']) {
    3. case 'type_1':
    4. // type 1 here
    5. break;
    6. case 'type_2':
    7. // type 2 here
    8. break;
    9. }
    Если не секрет, вы подрабатываете/фрилансите или официально работаете php-кодером ?
     
    SamyRed нравится это.
  13. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    Если не секрет, вы подрабатываете/фрилансите или официально работаете php-кодером ?[/QUOTE]
    я работаю в госструктуре... и как обычно ставят высокие планки.... с php я раньше не сталкивался.. и начинаю изучать... работаю над web мордой файловой помойки с информационной составляющей....
     
  14. Sviridov

    Sviridov Новичок

    С нами с:
    22 сен 2021
    Сообщения:
    24
    Симпатии:
    4
    А чё ставке в час на гос апарате у веб-кодеров ? Я не могу оценить свой уровень до сих пор, хотя я фуллстак с огромным опытом.Если идти работать в компанию я даже незнаю какой зп достоин, и достоин ли :D
     
  15. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0


    я прошу прощения, но такой информацией не могу поделиться. ГОССТРУКТУРА для меня это чревато.
     
  16. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    там не надо, от слова совсем
    просто делаете
    PHP:
    1. $options = [
    2.   ['name'=> "Главная",'value' =>'homepage'],
    3.   ['name' => "Алгоритмы", 'value' => 'algoritm'],
    4.   ['name' => "ТСД", 'value' => 'tsd'],
    5.   ['name' => "Формализованные бланки", 'value' => 'formblank']
    6. ];
    JS не нужен, action менять не надо
    отсылаете данные куда-нибудь в один общий add.php
    все.... данные того что выбрали - передадутся туда, а там дальше сохраняйте
     
    Mixupp нравится это.
  17. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Как вариант и раскрывающийся список не нужен, тем более что кто-то заикался о разграничении доступа ;)
    --- Добавлено ---
    Даже если не использовать зависящий от типа пользователя интерфейс, можно просто сделать ссылки на разные формы. Код при этом использовать обобщенный, если это целесообразно.
    --- Добавлено ---
    В G-Drive такое практически из коробки можно сделать. Списочек ссылок на формы достаточно захардкодить в каком-нибудь сайдбаре, хотя все расширяемо вплоть до динамики для неограниченного кол-ва таблиц – там и CMS примерно так работает.

    PHP:
    1. if ($_SERVER['REQUEST_METHOD']=='POST')
    2. {
    3.     // пишем в $table($page['id'])
    4.     redirect($_SERVER['REQUEST_URI']);
    5.     // return;
    6. }
    Хотя, как уже написали, разные таблицы использовать не нужно в данном случае. Но если они уже есть, то можно.
     
    #17 miketomlin, 13 окт 2021
    Последнее редактирование: 13 окт 2021
  18. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    P.S. В форме достаточно написать action="" (или action="#back"), так что она может быть полностью статической, если у вас нет полей для CSRF и т.п.