向from动作追加URL扩展名


Append URL extension to from action

我有一个表单张贴到一个预设的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;

这里有两个选项:

  1. 使用javascript侦听<select>字段的更改事件,并根据已选择的内容更改表单的操作。这就是其他答案所暗示的。

  2. 为了避免使用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>