Лучший метод для отправки нескольких параметров со связанными значениями

#php #html #forms

#php #HTML #формы

Вопрос:

У меня есть проект, в котором у меня будет длинный список элементов с одним или двумя связанными значениями, которые я хочу, чтобы пользователь мог щелкнуть и добавить в базу данных.

Например, мне нужна страница с этими значениями:

 Cat, animal_id=1
Dog, animal_id=2
Pig, animal_id=3
etc.
  

Теперь, если бы это было всего несколько элементов, я бы использовал несколько форм:

 <form action="add.php" method="post" name="animal_form1" id="animal_form1">
   <input id="animal_name" name="animal_name" type="hidden" value="cat" />
   <input id="animal_id" name="animal_id" type="hidden" value="1" />
   <input type="submit" name="animal_add" id="animal_add" value="add" />
</form>

<form action="add.php" method="post" name="animal_form2" id="animal_form2">
   <input id="animal_name" name="animal_name" type="hidden" value="cat" />
   <input id="animal_id" name="animal_id" type="hidden" value="1" />
   <input type="submit" name="animal_add" id="animal_add" value="add" />
</form>

etc.
  

но если есть много элементов со многими связанными значениями, которые я хочу отправить, каков был бы наиболее эффективный способ сделать это?

Ответ №1:

вы можете использовать поле выбора, которое включает в себя все необходимые значения сразу:

 <form action="add.php" method="post" name="animal_form" id="animal_form">
    <select name="animal">
        <option value="cat|1" />Cat 1</option>
        <option value="cat|2" />Cat 2</option>
        <option value="pig|3" />Pig 3</option>
    </select>
    <input type="submit" name="animal_add" id="animal_add" value="add" />
</form>
  

и в php разделите его:

 $animal = explode('|', $_POST['animal']);
echo $animal[0] . ', animal_id=' . $animal[1];
  

Комментарии:

1. Спасибо, но нет ли более элегантного решения? Я должен был упомянуть, но я надеялся использовать ajax тоже