it-swarm-eu.dev

Jak předat parametr / argument do webového formuláře pomocí čistých adres URL?

Našel jsem příspěvek, který vysvětluje, jak předat parametr/argument/odkaz na webform .

Funguje to dobře, ale mám ošklivou adresu URL. Existuje nějaký způsob, jak to udělat pomocí čisté adresy URL? Myslím bez použití GET parametrů.

5
chefnelone

Můžete to vyřešit pomocí mod_rewrite ve vašem .htaccess soubor. Zkuste něco jako

RewriteCond %{REQUEST_URI} ^/path/to/your/webform/(value)$
RewriteRule ^.*$ /path/to/your/webform?param=%1 [L]

Tímto způsobem můžete dělat mnoho věcí, ale nemůžete to nakonfigurovat pomocí uživatelského rozhraní drupal UI.) Zde je příklad s více parametry:

RewriteCond %{REQUEST_URI} ^/path/to/your/webform/(value1)/(value2)/(.*)$
RewriteRule ^.*$ /path/to/your/webform?param1=%1&param2=%2&param3=%3 [L]

Podívejte se na manuálně .

ÚPRAVA: Příklad vašeho komentáře by měl vypadat asi takto:

RewriteCond %{REQUEST_URI} ^/myform/(\d+)$ 
RewriteRule ^.*$ /myform?i=%1 [L] 

Přesný regex na konci závisí na vašich parametrech. Pokud očekáváte pouze čísla jako 1 nebo 0125\d+ mělo by to být v pořádku. Podívejte se na toto cheatsheet pro více/jiné char-třídy a regex věci.

4
nonsenz

Drupal striktně rozpoznává q tj. $_GET['q'], Protože cesta stránky jinak přesměruje na stránku Stránka nenalezena. Předávání argumentů v rámci q, Drupal systém menu musí být informován o takových argumentech, které používají držitele. A k argumentům lze přistupovat pomocí arg([arg-index])

Předávání extra neregistrovaného parametru na jakoukoli stránku je možné pouze pomocí dalších proměnných GET vedle q a lze k nim přistupovat běžným způsobem PHP. tj. $ _GET globální pole

2
Shoaib Nawaz