Я хочу отправить выбранное значение элемента вместе с некоторым значением атрибута (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>
благодаря
<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];
Вы можете сделать это с помощью 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'];
Вам придется использовать JavaScript. Браузер отправит только value
выбранного параметра (так что это не ошибка PHP).
То, что должен сделать ваш JS, – это stud_name
событие отправки формы и создать скрытое поле со значением значения stud_name
выбранной опции. Это скрытое поле будет отправлено на сервер.
Это, как говорится …, вы не должны ретранслировать на клиенте, чтобы предоставить правильные данные. Вы уже знаете, какое имя stud_name
должно быть для заданного значения на сервере (поскольку вы его выводите). Поэтому просто применяйте ту же логику при обработке формы.
просто соедините значение и имя_ступа, например 1_sre, и разделите значение, когда получите его в php. Javascript кажется молотком, чтобы взломать орех. NB этот метод предполагает, что вы можете редактировать 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>
Вы можете использовать функцию 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>