2013-07-09 3 views
3

я в настоящее время этот адрес в адресной строкеwindow.location.href не работает, mod rewrite или jquery?

http://localhost/cp/subscribed&type=topics 

Когда я нажимаю search-button-cp он должен добавить на &search=$term

$(".search-button-cp").live("click", function() { 
    var url = $(this).parents(".search-container:first").attr("data-url"); 
    var search = $(this).parents(".search-container:first").find(".search-input-cp").val(); 
    window.location.href = url + "&search=" + search; 
}); 

вместо этого я получить этот URL

http://localhost/cp/localhost/cp/subscribed&type=topics&search=car 

I alert(url) и я получаю localhost/cp/subscribed&type=topics ... так в чем проблема?

он должен перенаправить этот адрес localhost/cp/subscribed&type=topics&search=car

Как решить эту проблему?

Вот мой мод переписывает упаковывает это является виновник

RewriteRule ^cp/([A-Za-z0-9-]+)?(/[A-Za-z0-9-]+)?(/[A-Za-z0-9-]+)?([^.]+)?/?$ /cp.php?o=$1&id=$2&p=$3&query=$4 [L] 
+1

При указании ПОЛУЧИТЬ аргументы, вы должны положить ** ** перед первым, а не ** & **?. – Greg

ответ

3

Вы должны поместить http:// до вашего вара url в window.location.href или сделать путь относительно.

Теперь ваш сценарий «думает» localhost/cp/subscribed&type=topics это относительный путь (потому что нет http(s)://) и ваш базовый путь, http://localhost/cp/ добавляется перед путем в window.location.href.

+0

Этого, вероятно, достаточно, чтобы сделать его относительным сервером, т. Е. Preend «/»: 'window.location.href ="/"+ url;' – Tommi

+0

Ах, нет, имя сервера уже включено в URL-адрес. – Tommi

0

Попробуйте эту функцию вместо:

function ChangeUrl() { 
    var currentUrl = window.location.href; 
    var stringToNavigate = ""; 
    if (currentUrl.indexOf("search") !== -1) 
     { 
      var stringToReplace = currentUrl.substring(currentUrl.indexOf("search"), currentUrl.length); 
      if (stringToReplace.indexOf("&") !== -1) 
      { 
       stringToReplace = stringToReplace.substring(0, stringToReplace.indexOf("&")); 
      } 
      stringToNavigate = currentUrl.replace(stringToReplace, "search=" + document.getElementById('yourTextBoxId').value);     
     } 
    else 
     { 
      stringToNavigate = currentUrl + "&search=" + document.getElementById('yourTextBoxId').value; 
     } 
    window.location.href = stringToNavigate; 
} 
+0

Используется этот код один раз, когда я выполнял поиск с помощью javascript :) –