- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在组合框填充数据时遇到问题。
我有一个表用户,其中包含以下列:
我们正在绑定(bind)数据,包括与其他表(例如 hrh...)的连接,并且我们正在使用以下代码计算用户心率及其卡路里:
$totalPoints = 0;
$totalDuration = 0;
$totalCalories = 0;
$noOfParticipants = 0;
$includedUsers = 0;
$participants = "";
主程序
$query = "SELECT DISTINCT usrIndex,usrNickname";
$query .= " FROM hrheader hrh";
$query .= " INNER JOIN `user` usr ON hrh.hrhUsrIndex=usr.usrIndex";
$query .= " WHERE usrSIndex=$sIndex";
$query .= " AND hrhStart>'" . $start . "' AND hrhStart<'" . date("Y-m-d", strtotime($end . " +1 days")) . "'";
$query .= " ORDER BY usrNickname";
$gresult = mysql_query($query);
if ($gresult)
{
$noOfParticipants = mysql_num_rows($gresult);
$participants = "<table style='text-align:center;font-size:18px;width:980px;margin- top:16px;color:#231f20;'>";
$participants .= "<tr>";
$participants .= "<th>Nickname</th><th>Time (Hours & Mins)</th><th>Average Effort</th><th>Calories</th><th><img src='../images/mepslogo.png' /></th>";
$participants .= "</tr>";
下面的代码和图表有助于清楚地理解问题:
while ($grow = mysql_fetch_array($gresult))
{
$query = "SELECT ROUND(AVG(hr/hrhMaxHR)*100) AS AverageEffort,ROUND(AVG(hr)) AS AverageHeartRate,ROUND(MAX(hr)) AS MaxHeartRate,";
$query .= " COUNT(DISTINCT hrhIndex) AS NumberOfMoves";
$query .= " FROM `hrheader` hrh INNER JOIN hr ON hrh.hrhIndex=hr.hrHrhIndex";
$query .= " WHERE hrhUsrIndex=" . $grow['usrIndex'] . " AND hr>0";
$query .= " AND hrReceivedTime>'" . $start . "' AND hrReceivedTime<'" . date("Y-m-d", strtotime($end . " +1 days")) . "'";
$result = mysql_query($query);
$pAverageEffort = 0;
$pAverageHeartRate = 0;
$pMaxHeartRate = 0;
$pNumberOfMoves = 0;
if ($result)
{
$row = mysql_fetch_array($result);
if ($row)
{
$pAverageEffort = $row['AverageEffort'] . "%";
$pAverageHeartRate = $row['AverageHeartRate'];
$pMaxHeartRate = $row['MaxHeartRate'];
$pNumberOfMoves = $row['NumberOfMoves'];
}
}
$query = "SELECT hr,hrReceivedTime,hrhMaxHR,hrhWeight,FLOOR(DATEDIFF(hrReceivedTime,usrDOB)/365) AS Age,usrGender";
$query .= " FROM hrheader hrh INNER JOIN hr ON hrh.hrhIndex=hr.hrHrhIndex";
$query .= " INNER JOIN `user` usr ON hrh.hrhUsrIndex=usr.usrIndex";
$query .= " WHERE hrhUsrIndex=" . $grow['usrIndex'] . " AND hr>0";
$query .= " AND hrReceivedTime>'" . $start . "' AND hrReceivedTime<'" . date("Y-m-d", strtotime($end . " +1 days")) . "'";
$query .= " ORDER BY hrReceivedTime";
//echo $query;
$result = mysql_query($query);
$lastReceived = false;
if ($result)
{
$t = 0;
$pDuration = 0;
$zone1 = 0;
$zone2 = 0;
$zone3 = 0;
$zone4 = 0;
$zone5 = 0;
$count = 0;
$pCalories = 0;
while ($row = mysql_fetch_array($result))
{
if ($lastReceived)
{
$t = TimeDifference($lastReceived, $row['hrReceivedTime']);
if ($t < 5)
{
if ($row['hr'] > 0)
{
if ($row['hr'] > $row['hrhMaxHR'] * 0.9)
{
$zone5 += $t;
}
elseif ($row['hr'] > $row['hrhMaxHR'] * 0.8)
{
$zone4 += $t;
}
elseif ($row['hr'] > $row['hrhMaxHR'] * 0.7)
{
$zone3 += $t;
}
elseif ($row['hr'] > $row['hrhMaxHR'] * 0.6)
{
$zone2 += $t;
}
else
{
$zone1 += $t;
}
$count++;
$pDuration += $t;
$pCalories += calculateCalPerMin($row['hr'], $row['hrhWeight'], $row['Age'], $row['usrGender']) * $t;
}
}
}
$lastReceived = $row['hrReceivedTime'];
}
$zone1 = floor($zone1);
$zone2 = floor($zone2);
$zone3 = floor($zone3);
$zone4 = floor($zone4);
$zone5 = floor($zone5);
$pPoints = 0;
$pPoints+=calculatePoints(1, $zone1);
$pPoints+=calculatePoints(2, $zone2);
$pPoints+=calculatePoints(3, $zone3);
$pPoints+=calculatePoints(4, $zone4);
$pPoints+=calculatePoints(5, $zone5);
$totalCalories+=$pCalories;
$totalPoints+=$pPoints;
$totalDuration+=$pDuration;
if (mysql_num_rows($result) > 0)
{
mysql_data_seek($result, 0);
$row = mysql_fetch_array($result);
$include = 1;
if (!empty($targetGroup))
{
if ($targetGroup != $row['usrGender'])
{
$include = 0;
}
}
if (!empty($targetNoOfSessions))
{
if ($targetNoOfSessions < $pNumberOfMoves)
{
$include = 0;
}
}
if (!empty($targetDuration))
{
$x = explode(":", $targetDuration);
$targetDuration = ($x[0] * 60) + $x[1];
if ($targetDuration < $pDuration)
{
$include = 0;
}
}
if (!empty($targetAveEffort))
{
if ($targetAveEffort > floor($pAverageEffort))
{
$include = 0;
}
}
if (!empty($targetTimeInZones))
{
$targetTimeInZones = intval($targetTimeInZones);
if (!empty($targetTimeInZones))
{
switch ($targetTimeInZones)
{
case 1:
if (empty($zone1))
$include = 0;
break;
case 2:
if (empty($zone2))
$include = 0;
break;
case 3:
if (empty($zone3))
$include = 0;
break;
case 4:
if (empty($zone4))
$include = 0;
break;
case 5:
if (empty($zone5))
$include = 0;
break;
}
}
}
if (!empty($targetCalories))
{
if ($targetCalories >= $pCalories)
{
$include = 0;
}
}
if (!empty($targetPoints))
{
$debug .= "$targetPoints - $pPoints --";
if ($targetPoints >= $pPoints)
{
$include = 0;
}
}
if ($include == 1)
{
$includedUsers+=1;
}
}
if ($include == 1)
{
$participants .= "<tr><td>" . $grow['usrNickname'] . "</td><td>" . FormatTime($pDuration) . "</td><td>$pAverageEffort</td><td>" . floor($pCalories) . "</td><td>$pPoints</td></tr>";
}
}
}
$participants .= "</table>";
这是主程序的 html 代码(这里我们定义 html 表):
<div class="txt" style="margin-right:10px;margin-top:16px;font-size:18px;width:462px;float:right">
<div class="txtl"></div>
<div class="txtr"></div>
<span>% of group that achieved target</span>
<span id="spanPercentAchieved" style="color:black;float:right">-%</span>
</div>
<div class="txt" style="margin-left:10px;margin-top:16px;font-size:18px;width:462px">
<div class="txtl"></div>
<div class="txtr"></div>
<span>Number of users achieved target</span>
<span id="spanNumberAchieved" style="color:black;float:right">-</span>
</div>
<span id="spanParticipants">
<table style='text-align:center;font-size:18px;width:980px;margin-top:16px;color:#231f20;'>
<tr>
<th>Nickname</th>
<th>No of Sessions</th>
<th>Duration</th>
<th>Average Effort</th>
<th><img src='../images/mepslogo.png' /></th>
</tr>
</table>
</span>
我已经在“主程序”中指明了查询并将数据绑定(bind)到html表
这段代码工作正常......但我的问题是
我想在该组合框中的昵称标题处设置 html 表内的组合框,选项如下(昵称、全名、电子邮件),当用户选择这些选项(全名、电子邮件)时,他们将能够看到用户的电子邮件以及当前显示昵称的人的全名..
我想要这样的:
如果用户选择全名,将显示全名而不是昵称;当用户选择电子邮件 ID 时,将显示电子邮件 ID 而不是用户的昵称。
此组合框选择将在表格列标题中设置。
有人可以帮忙吗?
任何人都可以帮助解决这个...这个主题。
最佳答案
您正在寻找这样的东西吗? http://test.puggan.se/test/column_test.php
这是一个简单的 JavaScript Soulotion,在 Firefox 中测试,可能有一个更简单的解决方案,即 JQuery。如果您将问题标记为 javascript或jquery ,您可能会得到更多懂数千种语言的人的回答
上面链接的示例中的代码:
<html>
<head>
<title>select column test</title>
<script>
function select_column(column_name)
{
document.getElementById('column_style').textContent = '.col_hideable div.col_' + column_name + ' {display: block;}';
}
</script>
<style id='column_style'>
.col_hideable div.col_nick_name {display: block;}
</style>
<style>
TH, TD {border: solid gray 1px;}
.col_hideable div {display: none;}
</style>
</head>
<body>
<table id='the_table'>
<thead>
<tr>
<th>
<select id='column_selector' onchange='select_column(this.value)'>
<option value='nick_name'>Nickname</option>
<option value='full_name'>Full name</option>
<option value='email'>Email</option>
</select>
</th>
<th>junk</th>
<th>junk</th>
<th>junk</th>
</tr>
</thead>
<tbody>
<tr>
<td class='col_hideable'>
<div class='col_nick_name col_hideable'>nickname 1</div>
<div class='col_full_name'>fullname 1</div>
<div class='col_email'>email 1</div>
</td>
<td> junk 1-2 </td>
<td> junk 1-3 </td>
<td> junk 1-4 </td>
</tr>
<tr>
<td class='col_hideable'>
<div class='col_nick_name'>nickname 2</div>
<div class='col_full_name'>fullname 2</div>
<div class='col_email'>email 2</div>
</td>
<td> junk 2-2 </td>
<td> junk 2-3 </td>
<td> junk 2-4 </td>
</tr>
<tr>
<td class='col_hideable'>
<div class='col_nick_name'>nickname 3</div>
<div class='col_full_name'>fullname 3</div>
<div class='col_email'>email 3</div>
</td>
<td> junk 3-2 </td>
<td> junk 3-3 </td>
<td> junk 3-4 </td>
</tr>
</tbody>
</table>
</body>
</html>
添加于2011-08-15 13:30
要在代码中实现此功能,您需要在 head-tag 中添加数千行
<script>
function select_column(column_name)
{
document.getElementById('column_style').textContent = '.col_hideable div.col_' + column_name + ' {display: block;}';
}
</script>
<style id='column_style'>
.col_hideable div.col_nick_name {display: block;}
</style>
<style>
TH, TD {border: solid gray 1px;}
.col_hideable div {display: none;}
</style>
并替换表头代码
$participants .= "<tr>";
$participants .= "<th>Nickname</th><th>Time (Hours & Mins)</th><th>Average Effort</th><th>Calories</th><th><img src='../images/mepslogo.png' /></th>";
$participants .= "</tr>";
与
$participants .= "<tr>";
$participants .= " <th>";
$participants .= " <select id='column_selector' onchange='select_column(this.value)'>";
$participants .= " <option value='nick_name'>Nickname</option>";
$participants .= " <option value='full_name'>Full name</option>";
$participants .= " <option value='email'>Email</option>";
$participants .= " </select>";
$participants .= " </th>";
$participants .= " <th>Time (Hours & Mins)</th>";
$participants .= " <th>Average Effort</th>";
$participants .= " <th>Calories</th>";
$participants .= " <th><img src='../images/mepslogo.png' /></th>";
$participants .= "</tr>";
并替换表体代码
if ($include == 1)
{
$participants .= "<tr><td>" . $grow['usrNickname'] . "</td><td>" . FormatTime($pDuration) . "</td><td>$pAverageEffort</td><td>" . floor($pCalories) . "</td><td>$pPoints</td></tr>";
}
与
if ($include == 1)
{
$participants .= "<tr>";
$participants .= " <td class='col_hideable'>";
$participants .= " <div class='col_nick_name'>" . $grow['usrNickname'] . "</div>";
$participants .= " <div class='col_full_name'>" . $grow['usrFullname'] . "</div>";
$participants .= " <div class='col_email'>" . $grow['usrEmail'] . "</div>";
$participants .= " </td>";
$participants .= " <td>" . FormatTime($pDuration) . "</td>";
$participants .= " <td>" . $pAverageEffort . "</td>";
$participants .= " <td>" . floor($pCalories) . "</td>";
$participants .= " <td>" . $pPoints . "</td>";
$participants .= "</tr>";
}
关于javascript - 尝试将组合框与 mysql 和 PHP 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062805/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!