2016-03-24 6 views
0

У меня проблема с передачей кликов значений в массив сеансов. Когда я нажимаю ссылки ниже класса «is-active», поэтому на основе активных ссылок я хочу передать данные на сеанс. Идея похожа на сайт: newfuturescareernavigator.org/assessment/step-1/, который выходит на три страницы без формы.Передача кликов по ссылкам на массив сеансов?

<a href="#" data-chng="this is-active" data-id="190"> 
<a href="#" data-chng="this is-active" data-id="436"> 
<a href="#" data-chng="this is-active" data-id="430"> 

Здесь после того, как я нажимаю на ссылки, активируется класс-активный.

<a href="#" data-chng="this is-active" data-id="190" class="is-active"> 
<a href="#" data-chng="this is-active" data-id="436" class="is-active"> 

Заранее спасибо

+0

Вы хотите просто добавить класс (в javascript) или использовать ajax и сохранить его в '$ _SESSION' (php)? Вы что-то пробовали? – noahnu

+0

Да, я пытаюсь получить идентификатор данных из выбранных ссылок, но я не могу сделать с ajax.

+0

Почему вы не можете использовать ajax, вы ставите его как тег для своего вопроса? Вы можете хранить массивы в '$ _SESSION'. Вы получите массив из '$ _GET' или' $ _POST'. Вы должны отредактировать свой вопрос и включить любой код, который вы пробовали. Если вам не нужно сохранять значения на стороне сервера, вы можете просто использовать javascript с событиями onclick. – noahnu

ответ

0

Я думаю, вы бы лучше просто захватить какие ссылки, где нажали на стороне клиента, а затем, когда пользователь переходит к «следующему шагу», вы можете обрабатывать клику соответственно.

Если вы абсолютно настроены на это, сохранив ссылки на клики в сеансе (по щелчку), вам придется использовать запрос ajax на сервер, поскольку переменные сеанса являются серверными. Используете ли вы JQuery или какую-то другую библиотеку, которая может помочь в этом?

вот краткий образец для сохранения ссылок, которые вызывается (без jquery). Очевидно, вам нужно написать что-то, чтобы предотвратить дублирование одной и той же ссылки в строке и, возможно, что-то удалить ссылку.

<body> 
<input type="hidden" id="ClickedLinks" name="ClickedLinks" value="" /> 
<a href="#" onclick="clickMe(this)" id="link1">click me</a> 
<a href="#" onclick="clickMe(this)" id="link2">click me</a> 

<script> 
function clickMe(obj) { 
    clickedLinks = document.getElementById("ClickedLinks"); 
    if(clickedLinks.value == "") { 
     clickedLinks.value = obj.id; 
    } else { 
     clickedLinks.value = clickedLinks.value +","+obj.id; 
    } 
    alert(clickedLinks.value); 
} 
</script> 
</body> 

EDIT: просто обернуть HTML выше в форме и имеют иную форму представить к следующему шагу. Как только вы переходите на следующую страницу, просто переместите значение ClickedLinks в сеанс.

IE:

$_SESSION["ClickedLinks"] = $_POST["ClickedLinks"]; 
+0

На веб-сайте [newfuturescareernavigator.org/assessment/step-1/][1] они не используют ввод. Поэтому я пытаюсь сделать что-то вроде веб-сайта выше. –

+0

, затем используйте переменную JS в глобальной области. Я поместил его во вход, чтобы его можно было найти на следующем шаге (при отправке формы). –

+0

Я постараюсь, что интересно, почему бы не использовать формы, возможно, они используют ajax для передачи данных на сеанс! –

0

если вы публикуете на другую страницу, вы можете просто использовать form, а затем получить результаты с $_POST ...

See this example

HTML

<label> 
     <input type="checkbox" name='item1'> 
     <span>Item 1</span> 
    </label> 
    <label> 
     <input type="checkbox" name='item2'> 
     <span>Item 1</span> 
    </label> 
    <label> 
     <input type="checkbox" name='item3'> 
     <span>Item 3</span> 
    </label> 

CSS

span { 
    display: inline-block; 
    background: #000; 
    padding: 10px 20px; 
    margin: 10px; 
    color: #fff; 
} 

label input { 
    /* display: none; */ 
} 

input:checked ~ span { 
    background: orange; 
    color: #000; 
} 
+0

Я думаю, что это хорошая идея, просто я хотел сохранить дизайн так, как есть. Но, наконец, лучше пойти этим путем. Поэтому у меня есть три страницы, и вам нужно собрать данные для выбора запроса. –

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