【问题标题】:BMI Calculator get values from home page but i want to set defealut valuesBMI计算器从主页获取值,但我想设置默认值
【发布时间】:2021-12-09 20:05:40
【问题描述】:

我的页面上有 BMI 计算器。计算器以这种方式工作,客户端将值放入主页上的输入中,在点击提交按钮后将客户端重定向到另一个页面,链接中有值,如本例https://kompliment.vojtyla.sk/bmi-kalkulacka**/?height=165&weight=55**

但是,如果有人直接打开页面https://kompliment.vojtyla.sk/bmi-kalkulacka 并且在此链接中缺少默认值,然后打开页面并仍然刷新并尝试获取值,我如何设置默认值。

谢谢

【问题讨论】:

标签: javascript wordpress


【解决方案1】:

如果我理解正确,您有一个带有输入字段的表单,您的客户可以在其中输入他们的措施,然后他们单击提交按钮,该按钮会触发带有添加查询参数的请求。 这意味着您的表单已经在影响您的请求。 如果是这种情况,您显然需要在主页的输入字段中设置默认值。这应该可以解决问题。

【讨论】:

  • 几乎就像你写的那样......但问题是我的主页上已经有默认值......但是如果我直接打开结果页面而不点击提交按钮......结果页面没有得到来自主页的默认值
  • 如果您可以控制该页面,那么您可以设置默认参数,如果没有传递参数,则将使用该参数。如果传递了任何参数,则应覆盖已设置的默认参数。如果您无法控制该页面(如果它是您正在使用的 API),那么您将无法控制它。
【解决方案2】:

嘿,我找到了解决方案。

我只给脚本添加了默认值:)

<script>
window.onload=function(){
  var height = '<!--php echo isset($_GET['height']) ? $_GET['height'] : ''?>';
  var weight = '<!--?php echo isset($_GET['weight']) ? $_GET['weight'] : ''?>';
  calculate_bmi(weight,height);

}

calculate_bmi = function(weight,height){
  bmi_num=document.getElementById('bmi_num');
  bmi_text=document.getElementById('bmi_text');
  if(weight == '' || height == ''){
    weight = 55;
    height = 165;
  //  window.location.href = '/bmi';
  }
    bmi=weight/((height/100) * (height/100));
    bmi = bmi.toFixed(1);
    bmi_num.innerHTML = bmi;
    bmi_text.innerHTML = bmi_text_calc(bmi);
    bmi_text_2.innerHTML = bmi_text_calc_2(bmi);
    bmi_text_about.innerHTML = bmi_text_about_calc(bmi);
    bmi_triangle_move(bmi)
}*/

bmi_text_calc = function(num){
  switch(true){
   case (num <= 18.5):
      return 'Podvýživa';
      break;
    case (num >= 18.5 && num < 21):
      return 'Štíhlosť';
      break;
    case (num >= 21.1 && num < 24.9):
      return 'Normálna hmotnosť';
      break;
    case (num >= 25 && num < 29.9):
      return 'Nadváha';
      break;
    case (num >= 30 && num < 34.9):
      return 'Obezita 1. stupňa';
      break;
    case (num >= 35 && num < 39.9):
      return 'Obezita 2. stupňa';
      break;
    case (num >= 40):
      return 'Obezita 3. stupňa';
      break;
    default:
      return 'Zle zadané hodnoty';
      break;
  }
}

bmi_text_calc_2 = function(num){
  switch(true){
   case (num <= 18.5):
      return 'Máte príliš nízku hmotnosť. ';
      break;
    case (num >= 18.5 && num < 21):
      return 'Máte ideálnu hmotnosť.';
      break;
    case (num >= 21.1 && num < 24.9):
      return 'Vaša hmotnosť je v norme.';
      break;
    case (num >= 25 && num < 29.9):
      return 'Vážite viac ako je optimálne.';
      break;
    case (num >= 30 && num < 34.9):
      return 'Vaša hmotnosť je vysoká.';
      break;
    case (num >= 35 && num < 39.9):
      return 'Vaša hmotnosť je príliš vysoká.';
      break;
    case (num >= 40):
      return 'Vaša hmotnosť je extrémne vysoká.';
      break;
    default:
      return 'Zle zadané hodnoty';
      break;
  }
}

bmi_text_about_calc = function(num){
  switch(true){
   case (num <= 18.5):
      return 'Príliš nízka hmotnosť je zo zdravotného hľadiska porovnateľným rizikom ako obezita. Predstavuje stredné až vysoké zdravotné riziko, a preto by vaše BMI nemalo byť nižšie ako 18,5. Odporúčame vám zvýšiť svoju hmotnosť. Stravujte sa zdravo, konzumujte nutrične kvalitnú a pestrú stravu a pravidelne cvičte. Zvoľte posilňovacie cvičenia, ktoré zvýšia podiel svalov.';
      break;
    case (num >= 18.5 && num < 21):
      return 'Gratulujeme vám, vaša hmotnosť je ideálna. Ak vás trápia drobné nedokonalosti a chcete svoju postavu ešte viac vylepšiť, odporúčame vám program Chudnutie Body Forming. V tomto programe dosiahnete miernu redukciu hmotnosti, úbytok v objemoch, spevnenie a vyformovanie postavy. <br> <span class="result_text_about__small_info">* Kritérium pre štíhlosť stanovil Inštitút redukcie nadváhy kompliment® na základe dlhoročných pracovných skúseností.</span>';
      break;
    case (num >= 21.1 && num < 24.9):
      return 'Máte normálnu hmotnosť a vaše zdravotné riziko spojené s telesnou hmotnosťou je nízke. Ak nie ste so svojou postavou spokojný, chcete schudnúť, vyformovať a spevniť postavu, zmenšiť konfekčnú veľkosť či zlepšiť kondíciu, odporúčame vám absolvovať program Chudnutie Body Forming alebo Chudnutie Basic. V týchto programoch dosiahnete svoj cieľ.<br> <span class="result_text_about__small_info">* Limitné hodnoty BMI pre normálnu hmotnosť majú vysokú toleranciu a to viac ako 16 kilogramov.</span>';
      break;
    case (num >= 25 && num < 29.9):
      return 'Riziko vzniku zdravotných komplikácii spojených s telesnou hmotnosťou je u vás zvýšené. Schudnite čo najskôr. Od normy vás delí len niekoľko kilogramov a vašu ideálnu hmotnosť máte na dosah. Zmeňte svoj životný štýl, začnite sa stravovať zdravo a pravidelne cvičte. Odporúčame vám program Chudnutie Basic alebo Chudnutie Medium, v ktorých dosiahnete tento cieľ. Ideálnu hmotnosť a lepší vzhľad dosiahnete jednoducho a zdravo.';
      break;
    case (num >= 30 && num < 34.9):
      return 'Nadmerná hmotnosť vážne ohrozuje vaše zdravie a znižuje kvalitu života. Schudnúť by ste mali predovšetkým kvôli svojmu zdraviu. Zmena vašej životosprávy by mala prebiehať pod odborným vedením a dohľadom, aby vaše chudnutie prebiehalo správne. Odporúčame vám program Chudnutie Medium alebo Chudnutie Maxi, v ktorých výrazne zredukujete vašu hmotnosť, zmeníte svoj vzhľad, zlepšíte si kondíciu a zdravie.';
      break;
    case (num >= 35 && num < 39.9):
      return 'Nadmerná hmotnosť vážne ohrozuje vaše zdravie a znižuje kvalitu života. Trvalému poškodeniu zdravia môžete predísť zmenou životosprávy a okamžitým znížením telesnej hmotnosti. Chudnúť by ste mali pod odborným vedením, aby vaše chudnutie prebiehalo správne. Odporúčame vám program Chudnutie Maxi,v ktorom dosiahnete svoj cieľ, zlepšíte si kondíciu a zdravie.';
      break;
    case (num >= 40):
      return 'Jediný spôsob, ako môžete predísť trvalému poškodeniu zdravia a zlepšiť kvalitu svojho života je okamžitá zmena životosprávy a významné zníženie telesnej hmotnosti. Začať chudnúť by ste mali okamžite a pod odborným dohľadom. Odporúčame vám program Chudnutie Maxi a Chudnutie Plus. Začnite čo najskôr!';
      break;
    default:
      return 'Zle zadané hodnoty';
      break;
  }
}

bmi_triangle_move = function(num){
  arrow=document.getElementById('bmi_arrow_down');
  num = parseInt(num);
  if(num <= 16.4){
    percentage = 0;
  }
  else if(num >= 40){
    percentage = 100;
  }
  else{
    percentage = ((num-16.4)*100)/23.6;
  }
  arrow.style.marginLeft="calc("+percentage+"% - 15px)";
}
</script>




<div class='bmi_box'>
  <div class='bmi_box_inner'>
    
    <div class='bmi_result_container'>
        <span id='bmi_num'>00.0</span>
        <span id='bmi_text'>Undefined</span>
        
    </div>

    <div class='bmi_bar_container'>
        <div class='bmr_bar'>
            <div id='bmi_arrow_down' class='bmi_arrow_down'></div>
                <div class='bmi_static_values'>
                    <span class='bmi_under_bar'>16.4</span>
                    <span  class='bmi_under_bar'>40+</span>
                </div>
        </div>
     </div>
      
      <div class='bmi_result_container under_bar'>
        <span id='bmi_text_2'>Undefined</span>
        <span id='bmi_text_about'>Undefined</span>
    </div>
      


    </div>
  </div>

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-09
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多