如何从<option> <select>传递值以形成操作

mr.*_*ta1 20 html forms action submit form-submit

我需要将选项select中的值传递给我有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>
Run Code Online (Sandbox Code Playgroud)

小智 29

您不必使用jQuery或Javascript.

使用name选择的标签,让表单完成它的工作.

<select name="agent_id" id="agent_id">
Run Code Online (Sandbox Code Playgroud)

  • 你能提供一个代码示例吗?我无法完全理解你的建议.谢谢. (5认同)
  • 这似乎是一个很好的答案,但信息很少。也许应该有一些背景 (4认同)

mku*_*gla 10

就像@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>
Run Code Online (Sandbox Code Playgroud)
  1. &agent_id=从表单操作中删除,因为您不需要它.
  2. 添加 name="agent_id"到选择
  3. (可选)添加单词requireddo表示需要进行此选择.

既然您使用的是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']; 
Run Code Online (Sandbox Code Playgroud)

作为这样一个简单任务的结论,你不应该使用任何javascript或jQuery.致@FelipeAlvarez回复您的评论


Bir*_*ega 8

您可以简单地使用自己的代码,但为选择标签添加名称

<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>
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样访问它

String agent=request.getparameter("agent_id");
Run Code Online (Sandbox Code Playgroud)


Mo *_*ami 6

用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>
Run Code Online (Sandbox Code Playgroud)

jQuery:

$('form').submit(function(){
   $(this).attr('action',$(this).attr('action')+$('#agent').val());
   $(this).submit();
});
Run Code Online (Sandbox Code Playgroud)

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();
}
Run Code Online (Sandbox Code Playgroud)


Ant*_*ray 6

而不是试图同时捕捉 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>
Run Code Online (Sandbox Code Playgroud)

很容易变成:

<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>
  <button type="submit">Submit POST Data</button>
</form>
Run Code Online (Sandbox Code Playgroud)

然后在 index.php - 这些值将被填充

$_POST['action'] // "contact_agent"
$_POST['agent_id'] // 1, 2 or 3 based on selection in form... 
Run Code Online (Sandbox Code Playgroud)