Расшифровка формы, добавление дополнительных данных

Тема в разделе "PHP", создана пользователем zavu, 10 июл 2011.

Модераторы: latteo
  1. zavu

    zavu

    Регистр.:
    24 сен 2010
    Сообщения:
    180
    Симпатии:
    14
    В общем, такая проблема: при обработке данных формы мне нужно добавить дополнительный параметр в таблицу БД, зависимый от одного из данных. Объясняю: есть список вида:
    Код:
          <select name="frukt" id="frukt">
            <option value="select">Выберите фрукт...</option>
            <option value="banan">banan</option>
            <option value="persik">persik</option>
    В обработке я, соответственно, получаю:
    Код:
    if (isset($_POST['frukt'])) {$frukt = $_POST['frukt'];}
    И записываю в БД в ячейку frukt название этого фрукта.

    А теперь мне дополнительно нужно, чтобы если из фруктов был выбран банан, то в ДРУГУЮ ячейку БД дополнительно записалось название картинки bananimg. Если же был выбран персик - persikimg. И т.п. Названия фрукта и картинки - разные.

    Каким образом это можно реализовать? Каким-то дополнительным условием связать, что название фрукта banan=названию картинки bananimg и название картинки привязать к другой ячейке?

    зы пока что пилю в сторону elseif ($frukt == ""), но ничего путного сформулировать не получается =/
     
  2. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    если у вас фрукты имеют вид как в примере banan - т.е. транслитом то проще всего добавить img к имени фрукта, например так
    PHP:
    $fruktimg $frukt.'img';
    если значения на киррилице, либо по какой-то причине название фрукта очень сильно отличается от имени картинки, то можете использовать массив, примерно так
    PHP:
        $arr_frukt = array(
        
    'банан'=>'bananimg'
        
    'персик'=>'persikimg'
        
    'что-то еще'=>'blablablaimg'
        
    );

    $fruktimg $arr_frukt[$frukt];
     
    zavu нравится это.
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    $frukt=array("banan"=>"bananimg", "apple"=>"appleimg",..... );
    $img=$frukt[$_POST['frukt']];
     
    zavu нравится это.
  4. zavu

    zavu

    Регистр.:
    24 сен 2010
    Сообщения:
    180
    Симпатии:
    14
    Мнэ-э... в общем, в ячейку img он все вставляет правильно, зато в ячейке frukt теперь не название фрукта, а название "array" О_О


    апд - с названием был мой косяк - просто переставила все после внесения основных данных в таблицу, и картинки прописала уже апдейтом таблицы. Но это все равно какой-то не очень красивый способ =/ сначала заносить, потом тут же править...


    Может, есть возможность реализовать это еще на уровне формы, а не в обработчике?
    Чтобы при выборе фрукта hidden-ом вводилось уже и название картинки?
     
  5. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    форма - это html-код, т.е. разметка. Любая логика реализуется в обработчике. Если не хочешь, чтобы обрабатывал сервер, делай обработку на стороне клиента, т.е. на яваскрипте.
     
  6. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    можно если использовать например тег <select> который при этом должен иметь приблизительно такой вид:
    PHP:
    <select name="frukt">
    <
    option></option>
    <
    option value="banan|||bananimg">Банан</option>
    <
    option value="apple|||appleimg">Яблоко</option>
    ...
    </
    select>
    а файл который обрабатывает форму должен содержать такой код:
    PHP:
    $frukt_arr explode("|||"$_POST['frukt']);
    $frukt=$frukt_arr['0'];
    $frukt_img=$frukt_arr['1'];
     
    zavu нравится это.