使用ajax / jquery设置php会话变量

时间:2013-02-24 16:06:15

标签: php jquery ajax session

我是ajax / jquery的新手。所以有一种简单的方法,当我点击表格中的单元格时,它的值将存储在会话变量中。

提前致谢

2 个答案:

答案 0 :(得分:7)

<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页面发送任何在id为“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”或类似的东西。它需要设置为“自动递增”,其类型必须为“整数”。第二列必须称为“CellValue”,其类型可以设置为“varchar”,包含255个字符。

要输出信息,以便可以打印,您应该询问有关如何将数据库表格输出到HTML的新问题。很可能你可能不想按原样打印表格,所以你应该具体说明人们会点击什么,即文本是什么?还是一个数字?如果它是一个数字,那是什么数字?您是否要对这些数字进行分组并显示每个组的总点击次数?等等,请具体说明。在打印之前,您可能需要更改上面的一些内容,具体取决于您要对表中的信息执行哪些后处理。例如,您可能需要将第二列的类型从varchar更改为integer或float(在这种情况下,您还需要更改PHP文件)。

答案 1 :(得分:5)

可以这么简单:

以下代码段将值发送到可以设置会话变量的页面

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

现在'sessionsetter.php'可以是这样的:

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

现在,您可以发送要设置为SESSION变量的任意数量的变量。

相关问题