使用PHP切换面板

时间:2012-02-25 16:42:58

标签: php javascript jquery mysql

我想知道是否有人可以帮助我。

从我发现的一些演示和教程中,我将this页面放在一起,使用mySQL数据库中的值将切换窗格添加到页面中以填充字段。

我遇到的问题是,在每一层只显示多个记录中的第一个。

e.g。屏幕目前显示16/03/2012作为唯一的记录,应该有另一个记录为23/02/2012。

然后在16/03/2012,下一个级别应该显示两个项目,而它只显示一个。

我已经在这方面工作了一段时间,但我似乎无法找到如何显示正确数量的记录的解决方案。

我只是想知道是否有人可以看看这个,并让我知道我哪里出错了。

我已添加以下完整脚本供参考。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Panel Test</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript"> 
jQuery(document).ready(function() {
  jQuery(".content").hide();
  //toggle the componenet with class msg_body
  jQuery(".heading").click(function()
  {
    jQuery(this).next(".content").slideToggle(500);
  });
});
</script>
<style type="text/css"> 
body {
    margin: 20px auto;
    font: 12px Verdana,Arial, Helvetica, sans-serif;
}
.layer1 {
margin: 0;
padding: 0;
width: 500px;
}

.heading {
margin: 1px;
color: #fff;
padding: 3px 10px;
cursor: pointer;
position: relative;
background-color:#c30;
}
.content {
padding: 5px 10px;
background-color:#fafafa;
}
p { padding: 5px 0; }
</style> 
</head> 
<?php
mysql_connect("hostname", "username", "password")or
die(mysql_error());
mysql_select_db("database");

$result = mysql_query("SELECT userdetails.userid, finds.dateoftrip, detectinglocations.locationname, finds.userid, finds.locationid, detectinglocations.locationid,   finds.findname, finds.finddescription FROM userdetails, finds, detectinglocations WHERE finds.userid=userdetails.userid AND finds.locationid=detectinglocations.locationid AND finds.userid = 1 ORDER BY dateoftrip DESC");

if (mysql_num_rows($result) == 0) 
// table is empty 
  echo 'There are currently no finds recorded for this location.'; 
  else
 { 
    while ($row = mysql_fetch_array($result)) 
    { 
    $dateoftrip = $row['dateoftrip']; 
    $findname = $row['findname'];   
{ 
}
}
}
?>
<body>
<div class="layer1"> 
        <p class="heading"><input name="dateoftrip" id="dateoftrip" type="text" value="<?php echo $dateoftrip;?>" disabled="disabled"/></p> 
        <div class="content"> 
            <input name="findname" id="findname" type="text" value="<?php echo $findname;?>" disabled="disabled"/>
        </div> 
</div> 
</body> 
</html> 

非常感谢和亲切的问候

2 个答案:

答案 0 :(得分:0)

您正在获取所有记录,但仅使用最后一个记录。 你应该这样说:

<div class="layer1"> 
        <p class="heading"><input name="dateoftrip" id="dateoftrip" type="text" value="<?php echo $dateoftrip;?>" disabled="disabled"/></p> 
        <div class="content"> 
            <input name="findname" id="findname" type="text" value="<?php echo $findname;?>" disabled="disabled"/>
        </div> 
</div> 

在while循环中获取数据:

    while ($row = mysql_fetch_array($result)) 
    { 
     $dateoftrip = $row['dateoftrip']; 
    $findname = $row['findname'];

所以它看起来像这样:

        while ($row = mysql_fetch_array($result)) 
        { 
         $dateoftrip = $row['dateoftrip']; 
        $findname = $row['findname'];
echo '<div class="layer1"> 
            <p class="heading"><input name="dateoftrip" id="dateoftrip" type="text" value="'.$dateoftrip.'" disabled="disabled"/></p> 
            <div class="content"> 
                <input name="findname" id="findname" type="text" value="'.$findname.'" disabled="disabled"/>
            </div> 
    </div>';
       }

答案 1 :(得分:0)

您需要将输出放在循环中。此外,您可能需要修改您的javascript以考虑多个内容ID。

您还应该将表单控件转换为数组,以便在需要时能够解析它们(参见下文)。

例如,这是修改表单的方法。

?>
<body>
<div class="layer1"> 
<?php
   while ($row = mysql_fetch_array($result)) 
    { 
    $dateoftrip = $row['dateoftrip']; 
    $findname = $row['findname'];   

    $i++;
?>
    <p class="heading"><input name="dateoftrip[]" id="dateoftrip" type="text" value="<?php echo $dateoftrip;?>" disabled="disabled"/></p> 
    <div class="content"> 
        <input name="findname[]" id="findname" type="text" value="<?php echo $findname;?>" disabled="disabled"/>

<?php

{ 
}
}
}    
?>
    </div> 
</div>