次のコードを実行GET
すると、Firebug コンソールにメッセージが表示されますが、変数は ですundefined
。これは、変数のスコープが関数のみに制限されているためだと思います。
私の目標は、テーブルの行をクリックして、テーブルの行をクリックすると、サーバーからテーブルのレコードに関連するデータを取得し、Web フォームの一部 (すべてではない) を入力できるようにすることです。さらにデータを追加し、フォームを送信します (画像を参照)。
<tr>
$id という変数を、テーブルの生成時にタグに渡された特定の行のデータ属性 ('recordID') として定義する Javascript 関数を次に示します。
Javascript:
$(document).on('click', 'tr', function() {
//Get the ID from the row clicked
var $id = $(this).data('recordId');
//short-hand
$('#section2').load('data_entry_form.php?id='+id);
});
data-attribute を含む PHP スニペット:
<table = "all_aifs">
<tr>
<th><b>Document ID</b></th>
<th><b>Pubco Name</b></th>
<th><b>Filing Date</b></th>
<th><b>PDF</b></th>
</tr>
<?php foreach($result as $index => $row) : ?>
<tr data-recordId="<?=$row[fee_source_id];?>"
class="<?=$row["match"] ? "match" : "";?>">
<td><?php echo $row[fee_source_id]; ?></td>
<td><?php echo $row[company_name_per_sedar]; ?></td>
<td><?php echo $row[document_filing_date]; ?></td>
<td></td>
</tr>
<? endforeach;?>
</table>
質問:クリックした行に関連するデータを Web フォームに含めるにはどうすればよいですか? AJAXを使用する必要があると思います。また、コンソールで変数が「未定義」になっているのはなぜですか? $id 変数 (recordId) として定義する必要があると思います。