我有一个表单张贴到一个预设的url变量,我想添加一个扩展到该url使用下拉选择器:
<form class="my-form" method="POST" action="<?php echo $url; ?>">
<select name="script_to_follow">
<option value="script1.php">Report 1</option>
<option value="script2.php">Report 2</option>
</select>
有没有人知道如何添加值选择器作为URL的扩展,例如,如果$URL= www.example.com和Report 1被选中,结果操作将是发布到www.example.com/script1.php
您可能必须使用jQuery:
var url = 'www.example.com';
$(".script_to_follow").change(function(){
var selvalue = $(this).val();
url = url + '/' + selvalue;
window.location = url;
})
可以使用jQuery。
在提交时调用函数:
var action = $('form.my-form').prop('action');
var selectedOption = $('select[name="script_to_follow"]').val();
$('form.my-form').prop('action', action+'/'+selectedOption;
这里有两个选项:
-
使用javascript侦听
<select>
字段的更改事件,并根据已选择的内容更改表单的操作。这就是其他答案所暗示的。 -
为了避免使用javascript,而不是根据所选值将表单指向不同的php脚本,而是有一个基于所选值切换的php脚本。所以:
<form class="my-form" method="POST" action="action.php">
<select name="script_to_follow">
<option value="a">Report 1</option>
<option value="b">Report 2</option>
</select>
然后在action.php
中这样做:
switch ($_GET["script_to_follow"]) {
case "a":
// contents of script1.php
case "b":
// contents of script2.php
}
试试这个为选择框添加id属性
<select name="script_to_follow" id="script_to_follow">
<option value="script1.php">Report 1</option>
<option value="script2.php">Report 2</option>
</select>
现在写一些jquery代码来改变动作属性,改变选项
<script>
$('#script_to_follow').change(function(){ // onchange event
var url = $('#script_to_follow').val(); // get selected option
$('form.my-form').prop('action',url); // replace action attribute
});
</script>
注意:不要忘记在表单
之前包含jquery脚本<script
src="https://code.jquery.com/jquery-3.1.1.js"
integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA="
crossorigin="anonymous"></script>