2012-03-19 4 views
-1

정말 도움이 필요합니다.mysql-php에서 책 세부 정보 표시

내 문제는 이제 mysql에서 가져온 책 세부 정보를 표시하려고합니다.

나는 단계별로 설명한다.

제목 : 하나 가격 : 20

  1. 내가 테이블에서 MySQL을

  2. 테이블 책을, 나는 다음과 같이 표시 PHP를 사용하여 제목과 가격, 전화 $


    제목 : 두 가격 : 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를 사용하여 정보를 클릭 할 수 있습니다. –

+0

@Michael 나는 받아들이는 법을 모른다. .. 나는 투표를 시도했으나, 요구 된 15 표명 이후로는 투표를하지 않았다. – haura

+0

투표 바로 아래에 공백으로 보이는 확인 표시가 있습니다. 클릭하고 대답을 수락합니다 (녹색 체크 표시로 체크 표시). – Michael

답변

0

당신은 <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을 참조하십시오.

+0

감사합니다. @ Travesty3. 나는 당신의 코드도 시도했지만, Michael에 의해 주어진 코드로서 문제가있다. 자바 스크립트가 작동하지 않는 것처럼 보입니다. 어쩌면 js를 읽지 못하게하는 링크에 문제가있을 수 있습니다. – haura

+0

@haura : AJAX를 통해 호출하는 스크립트를 만들어야합니다. 나의 예에서는 getBookInfo.php라고 불렀다. 어떻게 생겼는지에 대한 예를 보려면 업데이트 된 답변을 참조하십시오. 그리고 실제로 [AJAX에 관한 튜토리얼] (http://w3schools.com/ajax/default.asp)을 읽어야합니다. 믿을 수 없을만큼 유용하며, 미래에 의심 할 여지없이 다시 필요할 것입니다. – Travesty3

+0

div = onClick이 작동합니다! 하지만 getBookInfo.php이 오류가 발생했습니다. "경고 : mysql_fetch_row()는 매개 변수 1이 리소스 일 것으로 예상하고," – haura

0

jQuery에 익숙하다면 쉽게 수행 할 수있는 2 가지 방법이 있습니다. 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>"; 
} 

이제 자바 스크립트,이

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

물론 할 책 상세 숨겨진 시작합니다.

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

아약스로이 작업을 수행 할 수 있지만이를 탐색 할 수 있습니다. 다른 파일에 쉽게 가져 와서 표시해야 할 것입니다. 다음은 토글이 의미하는 것입니다. http://api.jquery.com/toggle/ – Michael

+0

[표시/숨기기를 전환하려면 jQuery로 전환 하시겠습니까?] (http://www.doxdesk.com/img/updates/20091116-so- large.gif) – Travesty3

+0

@ Travesty3 그다지 건설적이지는 않습니다. 그는 클릭을 기반으로 텍스트를 표시하거나 숨길 수있는 방법을 물었습니다. 저는 새로운 사람이 쉽게 시작할 수있는 솔루션을 제공하고 있습니다. 그리고 그가 아약스를 사용하려고한다면, 내가 멀리 떨어져 있니? 난 그렇게 생각하지 않아. 나는 jQuery 로의 전환을 제안하지 않고있다. jQuery에서 코드 작성이 간단한 솔루션을 제공하고 있으며 이해하기 쉽다고 생각한다. – Michael