dousi4950
2014-01-21 17:44
浏览 47
已采纳

HTML选择表单不起作用

site: http://macrorevolution.com/calculators/tdee/ Hey I'm trying to create a simple calculator but am running into a few problems.

First, my HTML select form seems to have no effect. My goal is to have the select input change the value of $activelevel. For example, if the user chooses 'heavy exercise, then an $activelevel of 1.9 will be applied to my formula.

Second, I want to bold the output $answer in . I've tried doing: <?php echo "<b>".$answer."</b>" ?> and <?php echo <span class="bold">$answer</span> ?> but they both fail. I think it's because they are in value=' '?

Lastly, how come my last table has no visible border even though I set border="1"?

<?php
$answer = "";
$agev = "";
$feetv = "";
$inchesv = "";
$weightv = "";
$sex = "";
$activelevel = "";
if(isset($_POST['agev']) && isset($_POST['feetv']) && isset($_POST['inchesv']) && isset($_POST['weightv']) && isset($_POST['sex'])) {
    //&& isset($_POST['activelevel'])
    $agev = $_POST['agev'];
    $feetv = $_POST['feetv'];
    $inchesv = $_POST['inchesv'];
    $weightv = $_POST['weightv'];
    $sex = $_POST['sex'];
    $activelevel = $_POST['activelevel'];
    $totalheightv = $inchesv + ($feetv*12);
    $heightcm = $totalheightv*2.54;
    $weightkg = $weightv/2.2;

    echo $activelevel;
    if($activelevel=='1v') $activelevel=1.2;
    else if($activelevel=='2v') $activelevel=1.375;
    else if($activelevel=='3v') $activelevel=1.55;
    else if($activelevel=='4v') $activelevel=1.725;
    else if($activelevel=='5v') $activelevel=1.9;
    else echo "error";
    //echo $activelevel;

    if($sex=='male') $answer = $activelevel * (66.47 + (13.75*$weightkg) + (5*$heightcm) - (6.75*$agev));
    if($sex=='female') $answer = $activelevel * (665.09 + (9.56*$weightkg) + (1.84*$heightcm) - (4.67*$agev));

}
?>


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<title>Total Daily Energy Expenditure</title>

<style type="text/css">
.bold {
font-weight:bold;
}
</style>

<style>
  table {
    font-size:14px;
    font-family: 'PT Sans', sans-serif;
    background-color:#FFFFFF;
  }
tr.spaceUnder > td
{
  padding:0em 1em 1em 0em;

}
p.ss {
    font-size:30px; 
    text-align:center
}
input {
margin-right:5px;
margin-left:5px;
}

</style>
</head>
<body>
<div class="box pt20">
<p class="ss">MacroRevolution TDEE Calculator</p><br>
<table width='80%' style="margin: 0 auto;">
    <tr class="spaceUnder">
    <td colspan="4">
TDEE = Total Daily Energy Expenditure. TDEE is the amount calories your body burns in a 24 hour period which includes eating, sleeping, excercising, and working.
    </td>
    </tr>
</table>

<form method='post' action=''>
<table width='80%' style="margin: 0 auto;">


    <tr class="spaceUnder">
        <td>Age:</td>
        <td><input type='text' name='agev' value="<?php echo $agev; ?>"/>Years</td>
    </tr>
    <tr class="spaceUnder">
        <td>Height:</td>
        <td align="justify"><input type='text' name='feetv' value="<?php echo $feetv; ?>"/>Ft

        <input type='text' name='inchesv' value="<?php echo $inchesv; ?>"/>In</td>
    </tr>
    <tr class="spaceUnder">
        <td>Weight:</td>
        <td align="left"><input type='text' name='weightv' value="<?php echo $weightv; ?>"/>lbs</td>
    </tr>
    <tr class="spaceUnder">
        <td colspan="2"><input type='radio' name='sex' value='male'>Male
                        <input type='radio' name='sex' value='female'>Female</td>
    </tr>
        <tr class="spaceUnder">
    <td colspan="2">
        <select>
  <option name='activelevel' value='1v'>Little or no Excercise / Desk job</option>
  <option name='activelevel' value='2v'>Light exercise / Workout 1-3 days/week</option>
  <option name='activelevel' value='3v'>Moderate exercise / Workout 3-5 days/week</option>
  <option name='activelevel' value='4v'>Heavy exercise / Workout 6-7 days/week</option>
  <option name='activelevel' value='5v'>Very heavy exercise / Physical job / Workout 2 times a day</option>
         </select>
        </td>
        </tr>

    <tr class="spaceUnder">
        <td colspan="2"><input type='submit' class="button highlight small" value='Calculate'/></td>
    </tr>
    <tr class="spaceUnder">
        <td colspan="2">Your TDEE is <input type='text' style="width: 50px;" value='<?php echo $answer?>' /><strong>k/cal per day</strong>  </td>
    </tr>

</table>
</form>


<table border='0' width='80%' style="margin: 0 auto;">
    <td colspan="4">


        TDEE = BMR x Activity Level <br>
    Where the formula for BMR(Harris-Benedict formula) is <br><br>
Men: BMR=66.47+ (13.75 x W) + (5.0 x H) - (6.75 x A) <br>
Women: BMR=665.09 + (9.56 x W) + (1.84 x H) - (4.67 x A) <br><br>

    W = Weight in kilograms (lbs/2.2)<br>
    H = Height in centimeters (inches x 2.54)<br>
    A = Age in years <br><br><br>

        <table border="1" width='500px'>
    <tr>
    <th>Amount of Activity</th>
    <th>Description</th>
    <th>TDEE Activity Level</th>
    </tr>
    <tr>
    <td>Sedentary</td>
    <td>Little or no Excercise / Desk job</td>
    <td>1.2</td>
    </tr>
    <tr>
    <td>Lightly Active</td>
    <td>Light exercise / Workout 1-3 days/week</td>
    <td>1.375</td>
    </tr>
    <tr>
    <td>Moderately Active</td>
    <td>Moderate exercise / Workout 3-5 days/week</td>
    <td>1.55</td>
    </tr>
    <tr>
    <td>Very Active</td>
    <td>Heavy exercise / Workout 6-7 days/week</td>
    <td>1.725</td>
    </tr>
    <tr>
    <td>Extremely Active</td>
    <td>Very heavy exercise / Physical job / Workout 2 times a day</td>
    <td>1.9</td>
    </tr>
    </table>  
    <br><br><br>
    </td>
</table>
</div>

</body>
</html>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • duan47676379 2014-01-21 18:09
    已采纳

    Your select input needs to have the name set. Consider:

    <select name="activelevel">
    <option value='1v'>Little or no Excercise / Desk job</option>
    <option value='2v'>Light exercise / Workout 1-3 days/week</option>
    <option value='3v'>Moderate exercise / Workout 3-5 days/week</option>
    <option value='4v'>Heavy exercise / Workout 6-7 days/week</option>
    <option value='5v'>Very heavy exercise / Physical job / Workout 2 times a day</option>
    </select>
    

    You can set the answer to be bold by setting the font-weight style of the input box.

    <input type='text' style="width: 50px;font-weight:bold;" value='<?php echo $answer?>' />
    

    Your table border is set by the file style.css to:

    table {
    border-collapse: collapse;
    border-spacing: 0;
    }
    
    点赞 打赏 评论
  • doushu9253 2014-01-21 17:53

    You need add name for the <select> tag as like below

     <select name="activelevel">       
              <option  value='1v'>Little or no Excercise / Desk job</option>
              <option  value='2v'>Light exercise / Workout 1-3 days/week</option>
              <option  value='3v'>Moderate exercise / Workout 3-5 days/week</option>
              <option  value='4v'>Heavy exercise / Workout 6-7 days/week</option>
              <option  value='5v'>Very heavy exercise / Physical job / Workout 2 times a day</option>
         </select>
    

    instead of

        <select>
              <option name='activelevel' value='1v'>Little or no Excercise / Desk job</option>
              <option name='activelevel' value='2v'>Light exercise / Workout 1-3 days/week</option>
              <option name='activelevel' value='3v'>Moderate exercise / Workout 3-5 days/week</option>
              <option name='activelevel' value='4v'>Heavy exercise / Workout 6-7 days/week</option>
              <option name='activelevel' value='5v'>Very heavy exercise / Physical job / Workout 2 times a day</option>
         </select>
    
    点赞 打赏 评论

相关推荐 更多相似问题