如何将mysql结果链接到同一页面以显示更多详细信息

时间:2012-12-23 13:51:00

标签: php mysql variables

我有一个页面可以自动运行查询并在页面上显示结果。 我想要做的是,当点击一个结果时,它应该在同一页面上显示关于该特定项目的更多细节(可能在div中),但我不想为每个特定的代码编写div / page item因为我从不断增长的数据库中获得结果。

这就是我显示结果的php的样子:

 while($row = mysql_fetch_array($result)){
 if (strlen($row['companyname'])>0) {


  echo      "<ul data-role='listview' data-inset='true'>
  <li><a href='#'>
  <h3>{$row['companyname']}</h3>
            <p><b>Address:</b></p>
            <p><b>Tel:</b>{$row['tel']}   <b>Fax:</b>{$row['fax']}</p>
            <p><b>Email:</b>{$row['email']}</p>
            <p><b>Website:</b>{$row['website']}</p>
            <p class='ui-li-aside'><strong>VIEW MORE</strong></p>
        </a></li>
    </ul>";

我尝试将下面的代码放在href属性中,但它仍然不起作用,它将离开我不想发生的页面:

  <a href="resultdetails.php?companyname='{$row['companyname']}"

然后我在下一页得到结果:

 $companyname = intval($_GET['companyname']);
 $query = mysql_query("SELECT * FROM businessuser WHERE companyname=$companyname");
 $details = mysql_fetch_array($query); 

 echo ($details[companyname]);
 echo ($details[website]);
 echo ($details[tel]);

这只会在我的表格中给出第一个结果,无论我点击哪个结果:(

请帮忙......谢谢

2 个答案:

答案 0 :(得分:1)

PHP是服务器端。这意味着当页面提供给用户时,您无法使用PHP编辑它。如果要在同一页面上显示详细信息,您有两种选择:

a)将详细信息放入隐藏的div中,然后点击查看更多链接

进行显示
<a href="#" onclick="$('#details1').css('display', 'block');return false;">View more</a>
<div style="display: none;" id="details1">Details here</div>

b)使用JavaScript加载详细信息(这是服务器端,意味着它在加载页面后在浏览器中运行)。您需要使用AJAX来加载数据。为此,您需要将获取详细信息的代码放在另一个脚本中,例如get_details.php

$.get('path/to/get_details.php', function(data)
{
    $('#details1').html(data);
    $('#details1').css('display', 'block');
});

注意:您需要jQuery才能使该代码正常工作。

答案 1 :(得分:1)

那么,你需要Javascript和Jquery才能实现这一目标。 这是一个DEMO:http://jsfiddle.net/yZrUg/4/我为你准备了。

您可以从那里复制代码或 这是HTML:

<table id="report"><tbody>  



    <tr class="odd">
            <td class="left"> Company Name </td> 
        </tr>

        <tr class="even" style="display: none;">
            <td style=" border:1px solid #CCC;">
                <p style="color:#656565;"> address</p>
                 <p style="color:#656565;"> tel </p>
                 <p style="color:#656565;"> email </p>
                 <p style="color:#656565;"> website </p>

            </td>
        </tr>  




    </tbody></table> 

CSS:

#report { border-collapse:collapse; }
        #report h4 { margin:0px; padding:0px;}
        #report td {  color:#000; padding:0px; }
        #report tr.odd td { color:black;  cursor:pointer; border-bottom:1px solid #CCC;   }


        #report tr.even td {background-color:#dadada;  padding:10px 0px 15px 20px; }
        #report tr.odd td.left {width: 1000px;   }
        #report tr.odd td.left b{font-size:18px; font-weight:normal;}
        #report div.arrow { background:transparent url(../images/arrows.png) no-repeat scroll 0px -16px; width:16px; height:16px;  }
        #report div.up { background-position:0px 0px; }
​

和Javascript:

$(document).ready(
    function(){
        $('#report tbody tr:nth-child(odd)').addClass('odd');
        $('#report tbody tr:nth-child(even)').addClass('even').hide();
        $('tr.odd').click(
            function(){
                var that = $(this),
                    next = that.next('.even');
                that.find('.arrow').toggleClass('up');
                next.toggle().siblings('.even').hide();
                $('.even:not(":visible")').each(
                    function(){
                        $(this).prev('.odd').find('.up').removeClass('up');
                    });
            });
        });
​

不要忘记使用Jquery