2014-01-31 2 views
0

Я пытаюсь набросать самый простой способ передать целые числа в массив при нажатии кнопки/href. Мне нужно получить доступ к массиву глобально на странице.PHP Session Array

Должен ли я сделать это с помощью Ajax или можно сделать все это в одном файле через массив сеансов?

Спасибо, что указал мне в правильном направлении.

-Джонатан

+0

php - это серверный язык, я думаю, что у вас есть веб-программирование, все неправильно – Dima

+0

Я знаю, какой язык на стороне сервера. Я говорю об отправке переменной в форме submit и добавлении ее в массив $ _SESSION. Я просто не знаю, как это будет функционировать. –

+0

что вы пытаетесь сделать? –

ответ

0

В любом случае вы будете нуждаться в PHP-файл, чтобы обработать событие POST (давайте называть это buttonHandler.php).

buttonHandler.php будет иметь $ _POST ['buttonID/name'], который содержит значение кнопки. Если эта переменная post имеет значение, то нажата кнопка.

Теперь, независимо от того, выполняете ли вы обычный POST, который требует перезагрузки страницы, или использовать AJAX - это личный выбор. Если вы используете ajax, я серьезно рекомендую вам заглянуть в jquery. Это делает ajax удивительно простым.

EDIT: Если вы редактируете только это от одной страницы, вы могли бы поставить обработчик в том же файле. Это не обязательно должен быть отдельный файл.

1

Предлагаю вместо этого использовать технику клиентской стороны, такую ​​как localStorage или cookie.

Основная причина в том, что если вы пытаетесь отслеживать клики на кнопках и ссылках с PHP, вам нужно будет каждый раз отправлять новый HTTP-запрос, чтобы вы могли отслеживать его на вашем PHP с помощью $_POST или $_GET. Хотя это может быть очевидно для ссылки, это действительно повредит пользователю, когда дело доходит до кнопок (которые не являются кнопками отправки формы).

Предполагая, что вы хотите избежать обращения к странице при каждом нажатии кнопки, вам необходимо реализовать Ajax. Это приводит нас к следующему вопросу: если вы уже используете javascript и Ajax, почему бы просто не отслеживать все в Javascript с первого места и только общаться с сервером, когда это необходимо?

Client Side Tracking с localStorage:

Используя localStorage или Cookies, вы можете просто связать события кликов и сохранить его в массив.

В JavaScript/JQuery вы можете использовать следующую examaple:

$(document).ready(function() { 
    var urls = JSON.parse(localStorage["visited"]) || [];//get the visited urls from local storage or initialize the array 

    if (urls.indexOf(document.URL) == -1) {//if current url does not exist in the array 
    urls.push(document.URL);//add it to the array 
    localStorage["visited"] = JSON.stringify(urls);//save a stringifyed version of the array to local storage 
    } 

}); 

При наличии данных массива в JavaScript, вы можете легко манипулировать DOM и CSS без зависимости от сервера. (т. е. меняя текст ссылки, href или css, если он уже был нажат).

Надеюсь, это поможет!

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