【问题标题】:Submitted $_GET form to create pretty URL提交 $_GET 表单以创建漂亮的 URL
【发布时间】:2020-01-02 21:29:25
【问题描述】:

我正在重新格式化我的 URL,以便 team.php?s=football 重写为 team/football/,我已经设法在 .htaccess 中使用以下内容:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^s/(.*)$ ./team.php?s=$1

现在输入localhost/proj/team/football 会加载正确的有效页面。

我在sports.php 上有一个$_GET 表单,该表单提交给team.php,但是在提交时,该表单仍会创建网址team.php?s=football。如何更改表单提交的格式?

表格如下:

<form id="choosesport" action="team" method="get">
      <input type="hidden" name="s" value=""/>
      <svg>...</svg>
</form>

并附带JS根据点击的SVG元素填写input字段:

function sport(name) {
    $("form#choosesport").find("input[type='hidden']").val(name);
    $("form#choosesport").submit();
}

$(document).ready(function() {
    $("a#netballBtn").on('click', function() {
        sport("netball");
    });
    $("a#rugbyBtn").on('click', function() {
        sport("rugby");
    });
    $("a#badmintonBtn").on('click', function() {
        sport("badminton");
    });
    $("a#footballBtn").on('click', function() {
        sport("football");
    })
});

【问题讨论】:

  • 对你来说可能很明显,但我不明白你的意思......?

标签: javascript php jquery .htaccess url-rewriting


【解决方案1】:

删除字段并将其添加到操作中

function sport(name) {
  const $form = $("form#choosesport");
  $form.find("input[type='hidden']").remove()
  $form.attr("action",$form.attr("action")+"/"+name+"/");
  $form.submit();
}

或者使用Ajax:

function sport(name) {
  const $form = $("form#choosesport");
  $("#someContainer").load($form.attr("action")+"?s="+name); // or as above
}

【讨论】:

  • 如何以这种方式达到 $_GET 变量的值? var_dump($_GET) 返回array (size=0) empty - 有没有比爆炸 url 更干净的方法?
  • AJAX方式不适合怎么办?我特别需要重定向到另一个页面而不是加载
  • 确实如此,但是我无法使用 $_GET 轻松访问该值。我不得不在斜杠处分解 URL,并使用array_filter 来摆脱极端情况字符串并将最后一项作为$_GET。 chrome 还会以这种方式在 URL 后面附加一个尾随 ?
  • @peterxz 为什么你现在突然无法访问该值 - 我以为你说你已经设置了重写?
  • 一开始我无法访问它,我使用了第一个示例,因为 AJAX 不适合。 var_dump($_GET) 不返回任何内容,并且 $_GET['s'] 也未定义。我通过将 url 的 href 部分分解成组来解决它,但这不是一个非常干净的解决方案。
猜你喜欢
  • 2013-05-25
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
相关资源
最近更新 更多