당신은 <div>
태그에 각 책을 포장하고, 각각에 대한 onclick
기능을 만들어야합니다.
정보가 미리로드되어 있는지 또는 요청에 따라 정보를 가져 왔는지는 귀하에게 달려 있습니다. 페이지에 도서 목록이 많으면 정보를 미리로드하면 성능 문제가 발생할 수 있으므로 AJAX를 통해 필요할 때 도서 정보를로드하는 것이 좋습니다.
// styling should be done in a CSS file, but for the simplicity of the example, including it inline
echo "<div id=\"divBookInfo\" style=\"display:none; position:fixed; bottom:0; right:0;\">
</div>\n";
$q = mysql_query("SELECT title, price_myr FROM books");
while ($result = mysql_fetch_array($q))
{
echo "<div onclick=\"showBookInfo({$result["bookID"]})\">
<b>Title:</b> {$result["title"]} <br />
<b>Price:</b> {$result["price_myr"]} <br />
</div>\n";
}
그리고 자바 스크립트 기능 :
function showBookInfo(bookID)
{
var xmlhttp;
if (window.XMLHttpRequest)
xmlhttp = new XMLHttpRequest();
else
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("divBookInfo").innerHTML = xmlhttp.responseText;
document.getElementById("divBookInfo").style.display = "block";
}
}
xmlhttp.open("GET", "getBookInfo.php?bookID="+ bookID, true);
xmlhttp.send();
}
getBookInfo.php : ALSO
<?php
$db_host="localhost";
$db_username="root";
$db_pass="";
$db_name="";
@mysql_connect($db_host, $db_username, $db_pass) or die("Could not connect to database.");
@mysql_select_db($db_name) or die("No database");
$q = mysql_query("SELECT author, publisher, description, ... FROM books WHERE bookID = '". mysql_real_escape_string($_GET["bookID"]) ."'");
list($author, $publisher, $description, ...) = mysql_fetch_row($q);
echo "<b>Author:</b> {$author} <br />
<b>Publisher:</b> {$publisher} <br />
<b>Description:</b> {$description} <br />";
?>
여기
는 코드가 AJAX를 사용하여 어떻게 보이는지이다
또 다른 단점은 HTML을 생성하는 PHP 스크립트에서 or die()
구문을 사용하지 않아야한다는 것입니다. 이유에 대해서는 this link을 참조하십시오.
페이지를 표시하기 전에 모든 정보를 이미 가져온 다음 클릭했을 때 숨기기를 해제하거나 AJAX를 사용하여 정보를 클릭 할 수 있습니다. –
@Michael 나는 받아들이는 법을 모른다. .. 나는 투표를 시도했으나, 요구 된 15 표명 이후로는 투표를하지 않았다. – haura
투표 바로 아래에 공백으로 보이는 확인 표시가 있습니다. 클릭하고 대답을 수락합니다 (녹색 체크 표시로 체크 표시). – Michael