【问题标题】:Form Submit URL Formatting表单提交 URL 格式
【发布时间】:2011-12-22 04:44:05
【问题描述】:

我有一个表单,提交时会转到 url "signup.php?username=xx",其中 xx 是输入字段。相反,我想知道是否可以将其转到以下 url “signup/xx”,其中 xx 是从输入字段中获取的。

【问题讨论】:

    标签: php html forms get


    【解决方案1】:

    为此,您需要使用 Javascript 和某种类型的 .htaccess。但是为什么不使用POST 而不是GET

    我不希望 singup?username=sawny&password=1234 出现在我的历史记录中。

    编辑:

    我做过这样的事情:

    $(document).ready(function() {
        $("submit[name='foo']").live('submit', function() {
    
            var usr = $("form input[name='user']").val();
            $("form input[name='user']").remove(); //Else it will be singup/usr?user=
    
            $("form[name='bar']").attr("action", "singup/"+ usr);
        });
    });
    

    然后将正则表达式 @zero 发布到 .htaccess 文件中。

    【讨论】:

    • 我只是传递用户名,因此我不介意历史,我只是想让它看起来更整洁,因为现在它提交的 url 是 signup.php?username=xx 但是我有一个将 signup/xxx 重写为 signup.php?username=xx 的规则。因此,如果我可以将表单提交给 signup/xx,那么 ht.access 将负责其余的工作。我希望我说得通
    【解决方案2】:

    试试这个:

    RewriteRule ^signup/([^/]*)$ /signup.php?username=$1 [L]
    

    【讨论】:

    • 嗨,我在这方面没有问题,它只是让表单提交到这个 url
    【解决方案3】:

    包括jQuery(如果尚未包括)

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    

    然后添加这个脚本

    <script>
    $(function(){
        $("form").submit(function(e){
            e.preventDefault();
            var action = $(this).attr("action");
            var username = $(":input[name='username']").val();
            action = action + "/" + username;
            location.href = action;
        })
    })
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多