0

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

这就是我的 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]);

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

请帮助...谢谢

4

2 回答 2

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 才能使该代码正常工作。

于 2012-12-23T14:26:24.620 回答
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

于 2012-12-23T14:37:22.027 回答