2015-01-19 1 views
2

Я переписываю свой URL-адрес и категорию, переходя к URL-адресу. Теперь я создаю Url дружных строки с помощью функции JS является:Как отобразить значение переменной Javascript для HTML href tag

function getUrlFriendlyString(str) 
{ 
    // convert spaces to '-' 
    //alert(str); 
    str = str.replace(/ /g, "-"); 
    // Make lowercase 
    str = str.toLowerCase(); 
    // Remove characters that are not alphanumeric or a '-' 
    str = str.replace(/[^a-z0-9-]/g, ""); 
    // Combine multiple dashes (i.e., '---') into one dash '-'. 
    str = str.replace(/[-]+/g, "-"); 
    return str; 
} 

теперь HTML страницы это JS функция дает значение строки в JS, как

<? $cat_name= 'Personalized Chocolates/Gift'; ?> 
<script>var url=getUrlFriendlyString("<?=$cat_name;?>");</script> 

я хочу передать URL-адрес значения уага в HTML тегов HREF, как этот

<a href="<?PHP echo SITE_URL;?>/category/<script>document.write(url);</script>/<?=$data_2['cat_id'];?>" 

но

<script>document.write(url);</script> 

не давая их значение и приходит URL, как этот

http://localhost/ecom/category/<script>document.writeln(url);</script>/105 

обязательна гиперссылка является

http://localhost/ecom/category/personalized-chocolates-gift/105 

любая идея, как я могу показать правильное URL с помощью JS строки?

я могу сохранить уаг URL-адрес значение в PHP переменной

+0

element.href = yourVariable; – ndugger

+0

Я могу сделать это в php и i m, но я хочу, чтобы на стороне клиента использовалось меньше ресурсов сервера. мы смещаем множество возможных функций на стороне клиента. – PankajR

ответ

1

Это работает для меня

вы можете взять Var URL-адрес значение в переменной PHP и использовать в HREF тега

<? $cat_name= 'Personalized Chocolates/Gift'; ?> 
<script>var url=getUrlFriendlyString("<?=$cat_name;?>");</script> 

и

<?php 
     $m="<script>document.write(url);</script>"; 
     echo $m; // output is : personalized-chocolates-gift 
    ?> 

это не даст вам тот же o/p внутри href, даст вам o/p ваш код js, потому что внутри $ m js код сохраняется и href не преобразовывает js в строку o/p

Я надеюсь, что это сработает для вас :)

3

Вы не можете включать в себя элемент (например, <script>...</script>) в середине значения атрибута.

Если вы собираетесь использовать этот подход, вам необходимо записать весь элемент привязки с использованием JavaScript.

Альтернативным подходом было бы установить значение по умолчанию в HTML, а затем получить доступ к элементу с DOM в скрипте, который появляется после завершения элемента.

Лучшим подходом было бы переписать функцию getUrlFriendlyString в PHP и запустить ее на вашем сервере.

+0

Дорогие спасибо за ответ. Я могу сделать это в php и i m, но я хочу, чтобы на стороне клиента использовать меньше ресурсов сервера. мы смещаем множество возможных функций на стороне клиента. – PankajR

+1

Это ложная экономика. Для начала такая операция дешева (в относительном выражении). В наши дни серверные ресурсы также дешевы.Перемещение его на клиент добавит сложность нескольких целевых сред для запуска кода (что увеличивает затраты на разработку и тестирование) и увеличивает вероятность сбоя (поскольку JS может не запускаться из-за сбоев в сети или плохой фильтрации спама/потери мобильные соединения/пользователи отключили JS/etc). – Quentin

Смежные вопросы