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.