У меня есть форма, которая при отправке отправляется на url «signup.php? Username = xx», где xx – поле ввода. Вместо этого мне было интересно, могу ли я заставить его перейти к следующему URL-адресу «signup / xx», где xx берется из поля ввода.
Для этого вам нужно использовать Javascript и некоторый тип .htaccess. Но почему бы вам не использовать POST
вместо GET
?
Я не хочу, singup?username=sawny&password=1234
в моей истории было 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); }); });
а затем regexp @zero отправлен в файле .htaccess.
Включить 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>
Попробуй это:
RewriteRule ^signup/([^/]*)$ /signup.php?username=$1 [L]