Javascript bir formun eylemini değiştirmek istedim, bu yüzden farklı formlara bağlantı veren aynı formda farklı gönderim girdilerine sahip olabilirdim. Ayrıca, example.com/page-name
'u example.com/index.pl?page=page-name
'a değiştirmek için Apache'nin yeniden yazımını kullanmanın ek bir komplikasyonu vardı. Beklenen URL (example.com/page-name
) adres çubuğunda görüntülenmiş olsa bile, formun eylemini değiştirmenin example.com/index.pl
(sayfa parametresi olmadan) oluşturulmasını sağladığını buldum. Bunu aşmak için, sayfa parametresini ayarlamak için gizli bir alan eklemek için Javascript kullandım. Yine de formun eylemini değiştirdim, sadece adres çubuğu doğru URL'yi görüntüledi.
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^/(.*)$ %{DOCUMENT_ROOT}/index.pl?page=$1&%{QUERY_STRING}
herhangi explaination ilgi duyarım olarak sadece ayar eylem yoktu neden: Burada
<input type="submit" onclick='setAction(this,"my-page")' value="Click Me!" />
benim Apache yeniden yazmak kurallar şunlardır: formda
function setAction (element, page)
{
if(checkCondition(page))
{
/* Insert a hidden input into the form to set the page as a parameter.
*/
var input = document.createElement("input");
input.setAttribute("type","hidden");
input.setAttribute("name","page");
input.setAttribute("value",page);
element.form.appendChild(input);
/* Change the form's action. This doesn't chage which page is displayed,
* it just make the URL look right.
*/
element.form.action = '/' + page;
element.form.submit();
}
}
iş.
Sanırım belge ['search-theme-form']', 'document.search -me-formu 'aslında çalışmıyor. –
Biçim adını tire olmadan tanımlamanız gerekebilir. – hop