Подтвердить что ты не робот

PHP: HTML: отправить атрибут выбора HTML в POST

Я хочу отправить выбранное значение элемента вместе со значением некоторого атрибута (stud_name). Есть ли какие-либо функциональные возможности в PHP? Вот пример.

<form name='add'>
Age: <select name='age'>
     <option value='1' stud_name='sre'>23</option>
     <option value='2' stud_name='sam'>24</option>
     <option value='5' stud_name='john'>25</option>
     </select>
<input type='submit' name='submit'/>
</form>

Спасибо

4b9b3361

Ответ 1

<form name='add' method="post">
Age: <select name='age'>
     <option value='1_sre' >23</option>
     <option value='2_sam'>24</option>
     <option value='5_john'>25</option>
     </select>
<input type='submit' name='submit'/>
</form>

У вас будет выбранное значение в $_POST ['age']. например: 1_sree. Затем вы сможете разделить значение и получить "имя_степени".

$stud = explode("_",$_POST['age']);
$stud_id = $stud[0];
$stud_name = $stud[1];

Ответ 2

Вы можете сделать это с помощью JQuery

Просто:

   <form name='add'>
   Age: <select id="age" name='age'>
   <option value='1' stud_name='sre'>23</option>
   <option value='2' stud_name='sam'>24</option>
   <option value='5' stud_name='john'>25</option>
   </select>
   <input type='hidden' id="name" name="name" value=""/>
   <input type='submit' name='submit'/>
   </form>

Добавьте этот код в раздел заголовка:

<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>

Теперь функция JQuery

<script type="text/javascript" language="javascript">
$(function() {
      $("#age").change(function(){
      var studentNmae= $('option:selected', this).attr('stud_name');
      $('#name').val(studentNmae);
   });
});
</script>

вы можете использовать оба значения как

$name = $_POST['name'];
$value = $_POST['age'];

Ответ 3

Вам нужно будет использовать JavaScript. Браузер отправит только value выбранного параметра (так что это не ошибка PHP).

То, что должен сделать ваш JS, - это подключиться к событию отправки формы и создать скрытое поле со значением выбранного значения stud_name. Это скрытое поле будет отправлено на сервер.

Как говорится... вы не должны ретранслировать на клиенте, чтобы предоставить правильные данные. Вы уже знаете, что stud_name должно быть для заданного значения на сервере (поскольку вы его выводите). Поэтому просто применяйте ту же логику, когда вы обрабатываете форму.

Ответ 4

просто соедините значение и имя_степени, например. 1_sre и разделите значение, когда получите его в php. Javascript кажется молотком, чтобы взломать орех. Нотабене этот метод предполагает, что вы можете редактировать html. Вот что может выглядеть html:

<form name='add'>
Age: <select name='age'>
     <option value='1_sre'>23</option>
     <option value='2_sam>24</option>
     <option value='5_john>25</option>
     </select>
<input type='submit' name='submit'/>
</form>

Ответ 5

Вы можете использовать функцию jquery.

<form name='add'>
   <input type='text' name='stud_name' id="stud_name" value=""/>
   Age: <select name='age' id="age">
   <option value='1' stud_name='sre'>23</option>
   <option value='2' stud_name='sam'>24</option>
   <option value='5' stud_name='john'>25</option>
   </select>
   <input type='submit' name='submit'/>
</form>

Код jquery:

<script type="text/javascript" src="jquery.js"></script>

<script>
    $(function() {
          $("#age").change(function(){
          var option = $('option:selected', this).attr('stud_name');
          $('#stud_name').val(option);
       });
    });
</script>