как объединить ссылку со значением <select><option> в событии "onchange" - PullRequest
0 голосов
/ 07 марта 2011

<?php echo $this->getUrl(); ?> дает мне мою страницу индекса URL. www.domain.com/index.php/

Но теперь я хочу, чтобы при выборе какого-либо конкретного параметра он добавлялся к этому URL. .e.g.

www.domain.com/index.php/wordpress/

Я пишу этот код для него, но теперь не знаю, как это сделать. :(

<select onchange="setLocation('<?php echo $this->getUrl(); ?>')">
     <option value="">&nbsp;</option>
     <option value="wordpress">Wordpress</option>
     <option value="drupal">drupal</option>
     <option value="magento">Megento</option>
</select>

Кроме того, я искал эту ссылку, но не мог получить от нее помощь. Как это не сработало для меня.

<select name="forma" ONCHANGE="location = this.options[this.selectedIndex].value;">
 <option value="Home">Home</option>
 <option value="Contact">Contact</option>
 <option value="Sitemap">Sitemap</option>
</select>

1 Ответ

2 голосов
/ 07 марта 2011

С этим (обратите внимание, что я добавил this в качестве первого аргумента):

<select onchange="setLocation(this, '<?php echo $this->getUrl(); ?>')">
     <option value="">&nbsp;</option>
     <option value="wordpress">Wordpress</option>
     <option value="drupal">drupal</option>
     <option value="magento">Megento</option>
</select>

Вы можете написать следующее JS:

function setLocation(elm, baseUrl) {
    var keyword = elm.options[elm.selectedIndex].value; // Gets the selected keyword (some sanity check could be done)
    window.location = 'http://' + baseUrl + keyword + '/'; // Redirects
}

В качестве альтернативы:

<select name="forma" onchange="window.location='http://<?php echo $this->getUrl(); ?>' + this.options[this.selectedIndex].value + '/';">
 <option value="Home">Home</option>
 <option value="Contact">Contact</option>
 <option value="Sitemap">Sitemap</option>
</select>

( РЕДАКТИРОВАТЬ С префиксом http:// к обоим примерам.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...