PHPコードを含むページはサーバー側で実行されます。PHP が解釈され、コンテンツがブラウザに送信されます。データを受け取った後、JS コードがクライアント側で実行されます (ブラウザの JS マシンのおかげです)。
何もリロードせずに情報を表示したい場合は、2 つの解決策があります。
プロセスを再開すると、次のようになります。
1)最初のリクエストは、メイン スクリプトmain.phpにあります。
2)ページにはすべてのアイテムが表示され (ID のみが埋め込まれます)、情報コンテナー (非表示で空) が含まれます。
例
<!-- Your list of link with article ID -->
<div>
<a class="articleLink" id="123" href="#">View</a>
<a class="articleLink" id="124" href="#">View</a>
<a class="articleLink" id="125" href="#">View</a>
</div>
<!-- The bloc that will contain info and will be shown in a popup later (hidden) -->
<div id="divInfo">
<input type="text" name="name" value=""/>
<input type="text" name="description" value=""/>
</div>
<script>
$(document).ready(function() {
// add listener to all link
$(".articleLink").click(function(mouseEvent) {
// Retrieve the article ID
var myId = $(this).attr('id');
// Ajax call with the id of the link
// onSuccess, fill the divInfo and show it
$.ajax('getInfo.php', {
dataType: 'json',
type: 'POST',
data: {
articleId: myId
},
success: function(data, status, xhrObj) {
// The data is received, update the info container
$("#divInfo input[name=name]").val(data.name);
$("#divInfo input[name=description]").val(data.desc);
// Show the div in a popup
//...
}
});
return false;
});
});
</script>
3) 1 つのリンクをクリックすると、2 番目の PHP スクリプトgetInfo.phpへの ajax 呼び出しが実行され、指定された ID が与えられます。
4)スクリプトはデータベース内のデータを取得し、最終的に情報を返します (たとえば、JSON で)
PHP getInfo.phpが次のようなJSONを返すと仮定します。
{"name":"an article name","description":"the article description"}
注: 関数を使用して配列から PHP で JSON を簡単に生成できます。
json_encode()
5)データが受信されると、Ajax 呼び出しのメソッド onSuccess が呼び出され、データを使用してフォームに入力できます (これは一意で、ページに既に存在し、非表示になっています)。
幸運を