PHP:浏览数据

时间:2011-08-10 07:18:45

标签: php mysql html css list

我有一个我正在研究的PHP网站,需要允许用户选择数据并在下一个DIV上显示不同的数据(参见附图)。基本上我想要一个DIV(溢出:自动,所以它滚动)使用SQL SELECT语句填充,并允许用户单击列表项。如果有意义,该项为右边的div创建一个新的SELECT语句。关于最佳方式的任何输入? PHP新手,但不是HTML / CSS。

扎克

Navigation

2 个答案:

答案 0 :(得分:1)

最简单的方法是将右侧部分设为iframe。

然后中间列表中的每个项目都可以是这样的链接:

<a href="displaySubItems.php?company=2" target="rightColumn">Company 2</a>

在displaySubItems.php中,您将在select语句中使用$ _GET ['company']值来填充表。

或者你可以使用AJAX方法来填充右边的表格,虽然我个人并不熟悉AJAX,所以我不能告诉你更多关于它的信息。我也怀疑iframe受到更广泛的支持。

编辑:根据您的一条评论更改了部分内容

答案 1 :(得分:1)

我认为实现这一目标的最佳方法是使用jQuery(JavaScript-Library)。我很容易使用,如果你掌握了技巧,你就可以用它做出惊人的事情。

对于PHP / MySQL,您可以使用jQuerys Ajax功能(请参阅http://api.jquery.com/jQuery.ajax/)。使用回调显示加载的数据(见下文)。

这是一个非常简单的示例,介绍如何使用动态内容显示另一个div(其中可以包含更多选择的链接)。如果你将它与Ajax结合起来,你应该得到你需要的东西。

在head标签中包含jQuery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>

身体代码:

<!-- First Box: click on link shows up second box -->
<div id="selectOne" style="float: left; margin-right: 10px; border: #666 thin solid; padding: 10px;">
  <a href="#" id="one">One</a><br />
  <a href="#" id="two">Two</a><br />
  <a href="#" id="three">Three</a>
</div>

<!-- Second Box: initially hidden with CSS "display: none;" -->
<div id="selectTwo" style="float: left; margin-right: 10px; display: none; border: #666 thin solid; padding: 10px;"></div>

<!-- The JavaScript (jQuery) -->
<script type="text/javascript">

//Do something when the DOM is ready:
$(document).ready(function() {

//When a link in div with id "selectOne" is clicked, do something:
$('#selectOne a').click(function() {
    //Fade in second box:
    $('#selectTwo').fadeIn(500);

    //Get id from clicked link:
    var id = $(this).attr('id');

    //Depending on the id of the link, do something:
    if (id == 'one') {
        //Insert html into the second box which was faded in before:
        $('#selectTwo').html('One<br />is<br />selected')
    } else if (id == 'two') {
        $('#selectTwo').html('Two<br />is<br />selected')
    } else if (id == 'three') {
        $('#selectTwo').html('Three<br />is<br />selected')
    }
});
});
</script>

因此,如果您使用jQuerys Ajax-Functionality,您可以使用类似的东西(未经过测试!):

$('#selectOne a').click(function() {

var id = $(this).attr('id');

    $.ajax({
        type: 'POST',
        url: 'getYourData.php',
        data: 'thisIsSentToPHPFile='+id,
        success: function(msg){
            //everything echoed in your PHP-File will be in the 'msg' variable:
            $('#selectTwo').html(msg)
            $('#selectTwo').fadeIn(500);
        }
    });
});

getYourData.php可以是:

$id = $_POST['id'];
$query = mysql_query('SELECT * FROM table WHERE id='.$id);
$result = mysql_fetch_assoc($query);

//Now echo the results - they will be in the callback variable:
echo $result['tablefield1'].', '.$result['tablefield2'];

尝试一下,稍微调整一下,你应该让它运转起来。