skip to Main Content

I have BMI calculator on my page. Calculator works in this way client put values into inputs on home page, after hit the submit button redirect client to another page with values in link as this example https://kompliment.vojtyla.sk/bmi-kalkulacka**/?height=165&weight=55**

But how i set default values for the case if someone open page directly https://kompliment.vojtyla.sk/bmi-kalkulacka and in this link missing default values and after that, open page and still refreshing and trying to get values.

Thanks

2

Answers


  1. Chosen as BEST ANSWER

    Hey i found a solution.

    i put only default values to script :)

    <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>


  2. If I understand correctly, you have a form with input fields where your clients enter their measures and they click submit button that fires a request with added query parameters.
    That means your form is influencing your request already.
    If that is the case you would obviously need to set that default values in your input fields on your homepage. That should do the trick.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search