私は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>
テーブルは好きなだけ大きくすることができ、上記のスクリプトは、IDが「クリック可能」であるテーブルでクリックされたセルをPHPページに送信します。複数のクリック可能なテーブルが必要な場合は、IDからクラスに変更する必要があることに注意してください。
次に、yourphppage.phpで(上記のコードを指定すると、同じディレクトリにある必要があります:
<?php
session_start();
$_SESSION['cellValue'] = $_POST['sendCellValue'];
?>
情報をデータベースに保存することは、セッションとは大きく異なります。誰が何をクリックしたかを区別する必要がありますか?または、誰がクリックしたかに関係なく、クリックされたものを記録するだけですか?
その場合は、上記の2番目のスニペットの代わりに次を使用してください。
<?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と呼ばれる)が必要になります。2つの列が必要になります。最初のものは「ID」または同様のものと呼ばれる可能性があります。「自動インクリメント」として設定する必要があり、そのタイプは「整数」である必要があります。2番目の列は「CellValue」と呼ばれる必要があり、そのタイプは255文字の「varchar」に設定できます。
印刷できるように情報を出力するには、データベーステーブルをHTMLに出力する方法について新しい質問をする必要があります。おそらく、テーブルをそのまま印刷したくないので、人々がクリックするもの、つまりテキストについて具体的に説明する必要があります。それともナンバー?そして、それが数字だとしたら、どんな数字ですか?数値をグループ化し、各グループの合計クリック数を表示しますか?など、具体的にお願いします。印刷する前に、表の情報に対して実行する後処理によっては、上記の一部を変更する必要がある場合があります。たとえば、2番目の列のタイプをvarcharからintegerまたはfloatに変更する必要がある場合があります(その場合、PHPファイルも変更する必要があります)。
次のように簡単にできます。
次のスニペットは、セッション変数を設定できるページに値を送信します
$.post('sessionsetter.php', { 'fieldname' : 'sessionvariablename', 'value' : 'sessionvalue'});
「sessionsetter.php」は次のようになります。
session_start();
$_SESSION[$_POST['fieldname']] = $_POST['value'];
これで、設定したい数の変数を SESSION 変数として送信できます。