0

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

提前致谢

4

2 回答 2

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>

表格可以任意大,上面的脚本会将表格中被点击且 ID 为“可点击”的任何单元格发送到您的 PHP 页面。请注意,如果您想要多个可点击的表格,则应将其从 id 更改为 class。

然后在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 文件)。

于 2013-02-24T16:23:17.030 回答
5

它可以像这样简单:

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

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

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

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

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

于 2013-02-24T16:12:27.620 回答