Передача 2 параметров URL? - PullRequest
       18

Передача 2 параметров URL?

1 голос
/ 09 декабря 2011

Мне нужно передать 2 параметра URL в URL.URL-адрес создается в электронном письме, и пользователь нажимает на ссылку, ведущую на мой сайт.Первый параметр запускает скрипт на странице, второй параметр для модуля, который моя CMS будет отображать из параметра.

Первый параметр: message=1 (этот параметр запускает JavaScript)

Второй параметр: name={tag_recipientfirstname} (Моя CMS отобразит модуль)

Сценарийкоторый вызывается для первого, выглядит следующим образом:

    <script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function() {
var url = window.location.href;
url = url.toLowerCase();
if (url.indexOf('message=1') != -1) {
        $j("a.message").colorbox({
            open:true
});
   }
$j("a.message").colorbox(); //not related to URL parameter
}); 
</script>

Второй параметр используется на странице как:

<div>
<p>{ module_url,name} (again CMS will render this module)</p>
</div>

РЕДАКТИРОВАТЬ

Я понимаю, что пропустил пару вещей:

Первый: как передать оба параметра, чтобы они оба работали, как указано выше?

И CMS яиспользуется Business Catalyst.

Ответы [ 2 ]

3 голосов
/ 09 декабря 2011
//split the `location.search` string at the ampersands
var search_arr = window.location.search.replace('?', '').split('&'),
    len        = search_arr.length,
    get_vars   = {},
    tmp        = [];

//iterate through the key/value pairs and add them to the `get_vars` object
for (var i = 0; i < len; i++) {
    tmp = search_arr[i].split('=');
    get_vars[tmp[0]] = tmp[1];
}

//you can now access your GET variables through the `get_vars` object like: `get_vars.name`

//you can check for the existence of a certain GET variable like this
if (typeof(get_vars['message-1']) != 'undefined') {
    $j("a.message").colorbox({
        open:true
    });
}

Вот демоверсия: http://jsfiddle.net/aBH8K/1/ (http://jsfiddle.net/aBH8K/1/show/?message-1=3, чтобы увидеть с помощью get var)

Некоторая связанная с этим документация:

1 голос
/ 09 декабря 2011

Ваш вопрос не столько о разработке дженериков, сколько об очень специфическом коммерческом продукте; Я не знаю, на какой тарифный план вы подписались (бесплатно или за плату?), Но в любом случае было бы лучше пройти через их поддержку (см. Также мое заключение)

Тем не менее я постараюсь поставить вас на правильный путь.

Ваши вопросы

Сначала

URL в электронном письме

В письме вам нужно будет как-то создать ссылку с двумя параметрами, которые вы хотите, как объясняет @Jasper. это означает что-то вроде:

http://yourwebsite.com/destination/path/?message=1&name={tag_recipientfirstname}

Все, что находится после знака вопроса, это GET строка запроса . Параметры разделяются символом «&».

Я определенно не знаю, как правильно создавать URL-адреса в письмах BC, но я чувствую, что это должно быть где-то автоматически, что позволяет вам указать дополнительные параметры, если вам нужно.

JavaScript

То, что вы получили, все равно будет работать. Это не очень хорошо, и вы можете использовать решение Джаспера или любое другое, например Как получить значения строки запроса в JavaScript?

Тогда делать нечего, если только вы не хотите сделать его лучше и надежнее.

Business Catalyst (страница)

У вас обычно есть способы в CMS получить параметры получения. Часто что-то вроде

{ GET.param_name }

Шаг назад

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

Снова я предлагаю вам зайти в их секцию поддержки (хотя это довольно запутанно, я должен сказать!) И попытаться понять, как лучше всего достичь своей цели. Всегда есть много способов снять шкуру с бедного кота. Если вы получаете поддержку в своем плане, определенно идите по этому пути и постарайтесь объяснить, в чем заключаются ваши цели, а не как найти техническое решение, которое, на ваш взгляд, является хорошим!

...