我有一个页面可以自动运行查询并在页面上显示结果。 我想要做的是,当点击一个结果时,它应该在同一页面上显示关于该特定项目的更多细节(可能在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]);
这只会在我的表格中给出第一个结果,无论我点击哪个结果:(
请帮忙......谢谢
答案 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