HTML 선택 상자를 사용하는 계산기를 코딩하고 있습니다. 그러나 선택 값이 내 PHP 코드로 제대로 게시되지 않습니다. 누구든지 가능한 통찰력을 제공 할 수 있습니까? 나는 무엇이 잘못되었는지 전혀 모른다. 여기에서 계산기를 사용해 볼 수 있습니다. http://macrorevolution.com/calculators/1-rep-max/
제출을 누르면 값이 지워지고 결과가 제공되지 않습니다. http://macrorevolution.com/calculators/total-daily-energy-expenditure/ 와 같은 다른 계산기 에서는 입력 한 값이 제출 후에도 유지됩니다.
PHP 코드 :
<?php
$repsv = "";
$weightliftv = "";
$answer = "";
if(isset($_POST['weightliftv'])) {
$repsv = $_POST['repsv'];
$weightliftv = $_POST['weightliftv'];
if ($repsv=='0');
else if($repsv=='1v') $repsv=1;
else if($repsv=='2v') $repsv=1.0285949393;
else if($repsv=='3v') $repsv=1.0588733587;
else if($repsv=='4v') $repsv=1.0909884355;
else if($repsv=='5v') $repsv=1.1251125112;
else if($repsv=='6v') $repsv=1.1614401858;
else if($repsv=='7v') $repsv=1.2001920307;
else if($repsv=='8v') $repsv=1.2416190713;
else if($repsv=='9v') $repsv=1.2860082305;
else if($repsv=='10v') {$repsv=1.3333333333; echo "10";}
else echo "error";
$answer = $weightliftv * $repsv;
}
?>
다음은 같은 파일에있는 html 코드입니다.
<form method='post' action=''>
<table width='80%' style="margin: 0 auto;">
<tr class="spaceUnder">
<td>Weight Lifted:</td>
<td><input type='text' name='agev' value="<?php echo $agev; ?>"/>lbs</td>
</tr>
<tr class="spaceUnder">
<td>Reps Done</td>
<td colspan="2">
<select name="repsv">
<option name='repsv' selected='selected' value=''>Select</option>
<option name='repsv' value='1v'>1 Reps</option>
<option name='repsv' value='2v'>2 Reps</option>
<option name='repsv' value='3v'>3 Reps</option>
<option name='repsv' value='4v'>4 Reps</option>
<option name='repsv' value='5v'>5 Reps</option>
<option name='repsv' value='6v'>6 Reps</option>
<option name='repsv' value='7v'>7 Reps</option>
<option name='repsv' value='8v'>8 Reps</option>
<option name='repsv' value='9v'>9 Reps</option>
<option name='repsv' value='10v'>10 Reps</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"><strong>Your one rep max is </strong><input type='text' style="width: 50px; font-weight:bold;" value='<?php echo round($answer,0); ?>' /><strong>lbs</strong> </td>
</tr>
</table>
</form>
필요한 경우 전체 코드는 다음과 같습니다.
<?php
/*
Template Name: 1repcalc
*/
?>
<?php get_header(); ?>
<?php $al_options = get_option('al_general_settings');?>
<!-- Title -->
<div class="box pt20">
<!-- Title -->
<div class="headertext">
<?php the_title() ?>
<?php $headline = get_post_meta($post->ID, "_headline", $single = false);?>
<?php if(!empty($headline[0]) ):?>
<span><?php echo $headline[0] ?></span>
<?php endif?>
</div>
<div class="clearsmall"></div>
<!-- Promo text -->
<?php $promo = get_post_meta($post->ID, "_promo", $single = false);?>
<?php if(!empty($promo[0]) ):?>
<div class="calloutcontainer">
<div class="container_12">
<div class="grid_12">
<?php echo do_shortcode($promo[0]);?>
</div>
</div>
</div>
<?php endif?>
<div class="container_12">
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
</div>
</div>
<!-- ///////////////////////////////////////////////////////////////////////////////////////////-->
<?php
$repsv = "";
$weightliftv = "";
$answer = "";
if(isset($_POST['weightliftv'])) {
$repsv = $_POST['repsv'];
$weightliftv = $_POST['weightliftv'];
if ($repsv=='0');
else if($repsv=='1v') $repsv=1;
else if($repsv=='2v') $repsv=1.0285949393;
else if($repsv=='3v') $repsv=1.0588733587;
else if($repsv=='4v') $repsv=1.0909884355;
else if($repsv=='5v') $repsv=1.1251125112;
else if($repsv=='6v') $repsv=1.1614401858;
else if($repsv=='7v') $repsv=1.2001920307;
else if($repsv=='8v') $repsv=1.2416190713;
else if($repsv=='9v') $repsv=1.2860082305;
else if($repsv=='10v') {$repsv=1.3333333333; echo "10";}
else echo "error";
$answer = $weightliftv * $repsv;
echo $answer;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<title>One Rep Max Calculator</title>
<style>
table {
font-size:15px;
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 One Rep Max Calculator</p><br>
<table width='80%' style="margin: 0 auto;">
<tr class="spaceUnder">
<td colspan="4">
All weight training and resistance training programs are always based off of your 1 rep max. If you are uncertain of your 1 rep max you can use the 1 rep max calculator below to help get you pretty close to that number.
In many cases we find that the 1 rep max calculator is accurate within 5%. The closer you can get to completing 1 rep at maximum effort, the more accurate it will be!
</td>
</tr>
</table>
<form method='post' action=''>
<table width='80%' style="margin: 0 auto;">
<tr class="spaceUnder">
<td>Weight Lifted:</td>
<td><input type='text' name='agev' value="<?php echo $agev; ?>"/>lbs</td>
</tr>
<tr class="spaceUnder">
<td>Reps Done</td>
<td colspan="2">
<select name="repsv">
<option name='repsv' selected='selected' value=''>Select</option>
<option name='repsv' value='1v'>1 Reps</option>
<option name='repsv' value='2v'>2 Reps</option>
<option name='repsv' value='3v'>3 Reps</option>
<option name='repsv' value='4v'>4 Reps</option>
<option name='repsv' value='5v'>5 Reps</option>
<option name='repsv' value='6v'>6 Reps</option>
<option name='repsv' value='7v'>7 Reps</option>
<option name='repsv' value='8v'>8 Reps</option>
<option name='repsv' value='9v'>9 Reps</option>
<option name='repsv' value='10v'>10 Reps</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"><strong>Your one rep max is </strong><input type='text' style="width: 50px; font-weight:bold;" value='<?php echo round($answer,0); ?>' /><strong>lbs</strong> </td>
</tr>
</table>
</form>
<table border='0' width='80%' style="margin: 0 auto;">
<td colspan="4">
<br>
If you want to calculate your formula....
<br><br><br>
</td>
</table>
</div>
</body>
</html>
<!-- ///////////////////////////////////////////////////////////////////////////////////////////-->
<?php get_footer(); ?>
역도 v에 대한 입력이 표시되지 않습니다. 하나가 있다면 그것은 일 수 있습니다; if 뒤에 ($ repsv == '0'); 그것을 제거하면 작동합니다.
그래도 몇 가지 메모. isset이 필요하지 않습니다. if ($ _ POST [ 'weightliftv']) {같은 일을합니다. 각 옵션의 이름을 지정할 필요가 없으며 해당 옵션이 속한 선택 만하면됩니다. 더 안전하도록 게시물을 필터링하는 것을 잊지 마십시오 (filter_var ()).
<?php echo $var; ?> can be shortened to <?=$var;?>
else if ($ repsv == '10v') {$ repsv = 1.3333333333; echo "10";}에는 필요하지 않은 경우 중괄호가 있습니다. 그들은 아무것도 해치지 않지만 코드를 더 균일하고 읽기 쉽게 만듭니다.
많은 선택 옵션을 루프에 넣을 수 있습니다.
for($i=1;$i<11;$i++) {
<option name='repsv' value='1v'>1 Reps</option>
}
<?php
$repsv = "";
$weightliftv = "";
$answer = "";
if(isset($_POST['weightliftv'])) {
$repsv = $_POST['repsv'];
$weightliftv = $_POST['weightliftv'];
if ($repsv=='0');
else if($repsv=='1v') $repsv=1;
else if($repsv=='2v') $repsv=1.0285949393;
else if($repsv=='3v') $repsv=1.0588733587;
else if($repsv=='4v') $repsv=1.0909884355;
else if($repsv=='5v') $repsv=1.1251125112;
else if($repsv=='6v') $repsv=1.1614401858;
else if($repsv=='7v') $repsv=1.2001920307;
else if($repsv=='8v') $repsv=1.2416190713;
else if($repsv=='9v') $repsv=1.2860082305;
else if($repsv=='10v') {$repsv=1.3333333333; echo "10";}
else echo "error";
$answer = $weightliftv * $repsv;
}
?>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다