将URL扩展名附加到操作中

时间:2016-10-19 03:28:44

标签: php

我有一个发布到预设网址变量的表单,我想通过下拉选择器为该网址添加扩展名:

  <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并且选择了报告1,则生成的操作将发布到www.example.com/script1。 PHP

4 个答案:

答案 0 :(得分:0)

您可能必须使用jQuery执行此操作:

var url = 'www.example.com';
$(".script_to_follow").change(function(){
var selvalue = $(this).val();
url = url + '/' + selvalue;
window.location = url;
})

答案 1 :(得分:0)

您可以使用jQuery来完成。

在提交时调用一个函数:

var action = $('form.my-form').prop('action');
var selectedOption = $('select[name="script_to_follow"]').val();
$('form.my-form').prop('action', action+'/'+selectedOption;

答案 2 :(得分:0)

这里有两个选项:

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

  2. 为了避免使用javascript,而不是根据所选值将表单指向不同的php脚本,请使用单个php脚本根据所选值进行切换。这样:

  3. <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
     } 
    

答案 3 :(得分:0)

试试吧 添加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>