2012-03-19 80 views
-1

我真的需要幫助。顯示來自mysql-php的書的詳細信息

我現在的問題是我想顯示書籍的詳細信息,其中的數據是從MySQL。

我告訴你一步一步來。

  1. 我在MySQL的

  2. 桌書從表中,我打電話使用PHP的標題和價格,這顯示是這樣的:

標題:一 價格:20 $


標題:Two 價格:35 $


我的PHP代碼:

<?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 * FROM books "); 

while($result = mysql_fetch_array($q)) 
{ 

echo "<b>Title:</b> ".$result['title'] . " <br> "; 
echo "<b>Price:</b> RM".$result['price_myr'] ."<br>"; 
echo "<br>"; 

} 

?> 
  1. 這裏的問題開始。當用戶點擊上面的列表(步驟2)時,我想顯示書籍的詳細信息(作者,出版者,descrp等)。所以任何人都可以給我這個想法,我該怎麼做?如何使書籍列表可用於點擊,然後顯示詳細信息。

例如:

用戶點擊列表視圖;標題:一, 有關該書的彈出或加載的詳細信息。

我想我需要使用Ajax,但我不知道如何。

希望這裏的會員能幫忙。非常感謝 !

+1

您可以在顯示頁面之前獲取所有已經提取的信息,只需點擊時取消隱藏信息,也可以在點擊該信息時使用AJAX提取信息。 – 2012-03-19 16:30:59

+0

@邁克爾我不知道如何接受...我試圖投票,但因爲它要求的15個聲望而不能。 – haura 2012-03-20 01:02:19

+0

在投票下方有一個空白的複選標記,單擊它並接受答案(通過將複選標記變爲綠色複選標記) – Michael 2012-03-20 15:46:42

回答

0

你應該包裝中的每本書<div>標籤,併爲每個人的onclick功能。

無論是預先載入的信息還是取決於您的信息都取決於您。如果頁面上列出了大量圖書,則預加載信息可能會導致性能問題,因此通過AJAX按需加載圖書信息可能會更好。

這裏是你的代碼可能是什麼樣子,使用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"; 
} 

而且你的JavaScript函數:

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:

<?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 />"; 
?> 

ALSO

另一個方面是,您應該避免在生成HTML的PHP​​腳本中使用or die()語法。出於某些原因,請參閱this link

+0

謝謝@ Travesty3。我也試過你的代碼,但是我得到了Michael提供的代碼。 JavaScript似乎沒有工作。也許有一些問題,使得JS無法閱讀的鏈接。 – haura 2012-03-20 02:13:23

+0

@haura:您需要創建您通過AJAX調用的腳本。在我的例子中,我把它叫做getBookInfo.php。查看我的更新答案,查看可能的外觀示例。你真的應該閱讀[關於AJAX的教程](http://w3schools.com/ajax/default.asp)。這是非常有用的,你將來無疑需要它。 – Travesty3 2012-03-20 12:43:45

+0

div = onClick現在可以使用!但getBookInfo.php得到了這個錯誤。 「警告:mysql_fetch_row()期望參數1是資源,布爾值在」 – haura 2012-03-21 03:34:34

0

如果你熟悉jQuery,有兩個簡單的方法來完成它!有Ajax版本(更酷,但更復雜)和簡單的顯示/隱藏。

1.在你的mysql語句中,確保你有所有你想要顯示的細節。創建一個可以像這樣選擇CSS的環繞標籤。現在

//From your code 
while($result = mysql_fetch_array($q)) 
{ 
    echo "<div id='book-{$result['id']}'class='book-info'> 
     echo "<b>Title:</b> ".$result['title'] . " <br> "; 
     echo "<b>Price:</b> RM".$result['price_myr'] ."<br>"; 
     echo "<div class='book-details'> 
      echo "here is some details<br/>"; 
      echo "here is more details"; 
     echo "</div>" 
    echo "</div>" 
    echo "<br>"; 
} 

在JavaScript這樣做

$(".book-info").click(function() { 
    $(".book-details", $(this)).toggle(); 
}) 

,當然,使本書細節入手隱藏。

<style> 
    .book-details{display:none} 
</style> 
+0

您可以使用ajax來做到這一點,但我會讓您探究這個問題。你只需要做一些簡單的讀取和顯示在不同的文件。這是什麼切換意味着http://api.jquery.com/toggle/ – Michael 2012-03-19 16:36:36

+0

[建議切換到jQuery只是切換顯示/隱藏?](http://www.doxdesk.com/img/updates/20091116-so- large.gif) – Travesty3 2012-03-19 17:05:08

+0

@ Travesty3這不是很有建設性。他問他如何根據點擊顯示/隱藏文字。我提供的解決方案很容易讓新人開始。如果他試圖使用阿賈克斯,我是如此遙遠?我不這麼認爲。我不是建議切換到jQuery,我只是提供了一個jQuery解決方案,它很容易編碼,而且我認爲它很容易理解。 – Michael 2012-03-19 17:19:38