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

Как передать значение из <option> <select>, чтобы сформировать действие

Мне нужно передать значение в опции select to action, где у меня есть agent_id =

Может ли кто-нибудь помочь?

<form method="POST" action="index.php?action=contact_agent&agent_id=">
<select>
<option value="1">Agent Homer</option>
<option value="2">Agent Lenny</option>
<option value="3">Agent Carl</option>
</select>
4b9b3361

Ответ 1

Вам не нужно использовать jQuery или Javascript.

Используйте тег name для выбора и пусть форма выполняет эту работу.

<select name="agent_id" id="agent_id">

Ответ 2

с jQuery:
html:

<form method="POST" name="myform" action="index.php?action=contact_agent&agent_id="  onsubmit="SetData()">
  <select name="agent" id="agent">
    <option value="1">Agent Homer</option>
    <option value="2">Agent Lenny</option>
    <option value="3">Agent Carl</option>
  </select>
</form>

jQuery:

$('form').submit(function(){
   $(this).attr('action',$(this).attr('action')+$('#agent').val());
   $(this).submit();
});

javascript:

function SetData(){
   var select = document.getElementById('agent');
   var agent_id = select.options[select.selectedIndex].value;
   document.myform.action = "index.php?action=contact_agent&agent_id="+agent_id ; # or .getAttribute('action')
   myform.submit();
}

Ответ 3

Как @Shoaib ответил, вам не нужен jQuery или Javascript. Вы можете это просто с чистым html!

<form method="POST" action="index.php?action=contact_agent">
  <select name="agent_id" required>
    <option value="1">Agent Homer</option>
    <option value="2">Agent Lenny</option>
    <option value="3">Agent Carl</option>
  </select>
  <input type="submit" value="Submit">
</form>
  • Удалить &agent_id= из действия формы, так как он вам не нужен.
  • Добавить name="agent_id" в пункт
  • Необязательно добавить слово required показать, что этот выбор не требуется.

Поскольку вы используете PHP, то, разместив форму на index.php, вы можете поймать agent_id с помощью $_POST

/** Since you reference action on `form action` then value of $_GET['action'] will be contact_agent */
$action = $_GET['action'];

/** Value of $_POST['agent_id'] will be selected option value */
$agent_id = $_POST['agent_id']; 

В качестве вывода для такой простой задачи вы не должны использовать javascript или jQuery. Для @FelipeAlvarez, который отвечает на ваш комментарий

Ответ 4

вместо того, чтобы пытаться поймать ответы POST и GET, вы можете получить все, что захотите, в POST.

Ваш код:

<form method="POST" action="index.php?action=contact_agent&agent_id=">
  <select>
    <option value="1">Agent Homer</option>
    <option value="2">Agent Lenny</option>
    <option value="3">Agent Carl</option>
  </select>
</form>

может легко стать:

<form method="POST" action="index.php">
  <input type="hidden" name="action" value="contact_agent">
  <select name="agent_id">
    <option value="1">Agent Homer</option>
    <option value="2">Agent Lenny</option>
    <option value="3">Agent Carl</option>
  </select>
</form>

то в index.php - эти значения будут заполнены

$_POST['action'] // "contact_agent"
$_POST['agent_id'] // 1, 2 or 3 based on selection in form... 

Ответ 5

вы можете просто использовать свой собственный код, но добавьте имя для тега select

<form method="POST" action="index.php?action=contact_agent&agent_id=">
    <select name="agent_id">
        <option value="1">Agent Homer</option>
        <option value="2">Agent Lenny</option>
        <option value="3">Agent Carl</option>
    </select>

тогда вы можете получить к нему доступ, как это

String agent=request.getparameter("agent_id");