【问题标题】:how to link mysql results to the same page to show more details如何将 mysql 结果链接到同一页面以显示更多详细信息
【发布时间】:2012-12-23 22:37:22
【问题描述】:

我有一个自动运行查询并在页面上显示结果的页面。 我想做的是,当单击一个结果时,它应该在同一页面上显示有关该特定项目的更多详细信息(可能在 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]);

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

请帮忙...谢谢

【问题讨论】:

  • 当点击一个结果时,它应该在同一页面上向我显示有关该特定项目的更多详细信息,因为您似乎需要 JavaScript .当您单击它时,它会向您显示更多结果,而无需转到其他页面。对吗?
  • 是的,没错,不想采用 javascript 方式,因为我对此毫无用处。但可以肯定的是,分享你的想法,甚至是 javascript.. 如果这是唯一的方法
  • 好吧,看看我的回答和其他人。他的代码非常紧凑,唯一的区别是,我的当你点击它发送的时候它可以折叠起来。检查任何一个,不要忘记给你喜欢的任何一个投票

标签: php mysql variables


【解决方案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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 2013-01-01
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 2016-06-26
      相关资源
      最近更新 更多