Intereting Posts
PHP – другой open_basedir для каждого виртуального хоста Развернуть аргументы трассировки стека PHP mysqli_close (): Не удалось получить mysqli в Что означает поставщик в структуре веб-файла? PHP Warning: date (): Нельзя полагаться на настройки часового пояса системы. – OS X Странное поведение strtotime () при использовании относительных дат («на этой неделе») Когда подавлять ошибки в PHP Перенаправление и перенаправление URL-адресов (с данными базы данных) Извлечь текст из DIV, который встречается на нескольких страницах на веб-сайте, а затем выводить на .txt? Проблема подключения к базе данных sqlite с использованием php «INSERT … ON DUPLICATE KEY UPDATE id = id» все еще вставляет в дубликат Перенаправление, когда поисковый запрос является точным заголовком в WordPress Как напечатать значение массива ключа Конкретный столбец не вставлен при сохранении записи правильный способ загрузки изображения в базу данных

установить переменную сеанса php с помощью ajax / jquery

Im новое для ajax / jquery. так что есть простой способ, что, когда я нажимаю ячейку в таблице, ее значение будет храниться в переменной сеанса.

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

<html> <head> ... <script src="jquery.js"></script> ... <head> <body> .... <table id="clickable"><tr><td>Hello</td></tr></table> <script> $('#clickable td').on('click', function(e){ $.ajax({ type: 'POST', url: 'yourphppage.php', data: {sendCellValue: $(this).text()} }); }); </script> .... </body> </html> 

Таблица может быть такой же большой, как вам нравится, и вышеприведенный скрипт отправит на вашу страницу PHP любую ячейку, которая будет нажата в таблице с идентификатором «clickable». Обратите внимание, что если вы хотите иметь более чем одну таблицу кликов, вы должны изменить ее с id на класс.

Затем в файле yourphppage.php (который указан выше, код должен находиться в одном каталоге:

 <?php session_start(); $_SESSION['cellValue'] = $_POST['sendCellValue']; ?> 

Сохранение информации в базе данных сильно отличается от сеанса. Вам нужно различать, кто что нажал? Или просто записать то, что было нажато, независимо от того, кто его нажал?

Если это так, используйте следующий вместо второго фрагмента выше:

 <?php $connection = mysql_connect("localhost","my_db_username","pass1234"); mysql_select_db("my_db_name", $connection); mysql_query('INSERT INTO TheTable (CellValue) VALUES ("'.mysql_real_escape_string($_POST['sendCellValue']).'")'); ?> 

Для этого вам понадобится таблица (называемая TheTable). Это потребует двух столбцов. Первый может быть назван «ID» или что-то подобное. Он должен быть установлен как «автоинкремент», а его тип должен быть «Integer». Второй столбец должен быть назван «CellValue», а его тип может быть установлен на «varchar» с 255 символами.

Чтобы выводить информацию, чтобы ее можно было напечатать, вы должны задать новый вопрос о том, как выводить таблицу базы данных в HTML. По всей вероятности, вы, вероятно, не захотите распечатать таблицу как есть, поэтому вы должны быть конкретными в отношении того, на что будут нажимать люди, т. Е. Это текст? Или nummber? И если это число, какой номер? Вы хотите группировать номера и показывать общее количество кликов для каждой группы? И т.д., пожалуйста, будьте конкретны. Возможно, вам придется изменить некоторые из вышеперечисленных, в зависимости от того, какую постобработку вы хотите делать с информацией в таблице, прежде чем распечатать ее. Например, вам может потребоваться изменить тип второго столбца с varchar на integer или float (и в этом случае вам также потребуется изменить файл PHP).

Это может быть так просто:

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

 $.post('sessionsetter.php', { 'fieldname' : 'sessionvariablename', 'value' : 'sessionvalue'}); 

Теперь «sessionetter.php» может быть примерно таким:

 session_start(); $_SESSION[$_POST['fieldname']] = $_POST['value']; 

Теперь вы можете отправить столько переменных, которые вы хотите установить как переменную SESSION.