2017-07-03 5 views
0

ユーザー入力に基づいて数値変数を設定しようとすると、現在未定義変数の問題が発生しています。ユーザー入力に基づいて数値変数を設定するにはどうすればいいですか?

I以前にちょうどドロップダウンメニューの元と人員のためのオプションを選択して数学のロジックをテストするために割り当てられた変数があった:選択したもの/ else文がオフに基づいている場合ならば

<option value="Less Than 20">Less Than 20</option> 
<option value="Less Than 50">Less Than 50</option> 

と複数の作成を:

if($head_count == "Less Than 20"){ 
      $head_count = 15; 
      $taskMeetings_int = $head_count * 1.6; 
      $taskMeetings_low = 420 * $taskMeetings_int; 
      $taskMeetings_high = 1250 * $taskMeetings_int; 
}else if($head_count == "Less Than 50"){ 
      $head_count = 40; 
      $taskMeetings_int = $head_count * 1.6; 
      $taskMeetings_low = 420 * $taskMeetings_int; 
      $taskMeetings_high = 1250 * $taskMeetings_int; 
} 

しかし、変数が定義されていないフォームに実際の数値を入力するときに、変数を使用する際に問題が発生しました。 HeadcountSquare Footageの変数をnullに設定すると、入力された数値が読み取られると思いました。

次は私の現在のPHPのフォームです:

<form id="Corporate" action="<?php the_permalink(); ?>" method="post"> 
    <div class="col-lg-6"> 
    <p>Head Count<span>*</span></p> 
    <input min="0" id='' type="number" value placeholder="Enter the Headcount" name="head_count" required> 

    </div> 
    <div class="col-lg-6"> 
    <p>Square Footage<span>*</span></p> 
    <input min="0" type="number" value placeholder="Enter the Square Footage" name="sq_ft" required> 

    </div> 
    <div class="col-lg-6"> 
     <p>What's your territory?<span>*</span></p> 
     <select name="territory" required> 
      <option value="">Select One</option> 
      <option value="Louisiana">Louisiana</option> 
      <option value="Mississippi">Mississippi</option> 
     </select> 
    </div> 
    <div class="col-lg-6"> 
     <p>Email<span>*</span></p> 
     <input style="width:100%;" type="email" name="email" required> 
    </div> 
    <div class="col-lg-12"> 
     <p style="text-align:center;"><i>Don't forget to hit submit below!</i></p> 
    </div> 
     <div class="col-lg-12" style="text-align:center; margin-top:15px;"> 
      <input class="BudgetSubmit" type="submit" name="submit"> 
     </div> 
</form> 

< ?php 
    //run math depending on user input 
      $head_count = null; // I previously set this to be a random number Ex: $head_count = 55; for testing purposes 
      $taskMeetings_int = $head_count * 1.9; 
      $taskMeetings_low = 520 * $taskMeetings_int; 
      $taskMeetings_high = 1050 * $taskMeetings_int; 

      $square_footage = null; // I previously set this to be a random number Ex: $square_footage = 13000; for testing purposes 
      $conf_tables_int = $square_footage/5000; 
      $conf_tables_low = 1050 * $conf_tables_int * .1; 
      $conf_tables_high = 2000 * $conf_tables_int * .16; 

?> 

私は人員と平方フィートのためにフォーム内にIDを設定する必要がありますか?前もって感謝します。

EDIT:私の謝罪、次はフォームが送信されると思われるものである:

<?php 

    //my resource library function 
    function mrllinks($link,$title,$image){ 
     echo "<p><a target='_blank' href='$link' title='$title'><img style='width:100%;' src='$image'/></p>"; 
    } 

    function RepLayout1($link,$image,$name){ 
     echo "<div class='flex-item'> 
        <a target='_blank' href='$link'><img src='$image'/></a>     
      </div>"; 
    } 



    // displays results after initial submission 
    if($submitted){ 
     $lowTotal = $taskMeetings_low + $guestLounge_low + $gen_tables_low + $workspaceStation_low + $workspaceOffice_low + $techErgo_low + $ancillary_low + $taskLighting_low + $soundMasking_low; 
     $highTotal = $taskMeetings_high + $guestLounge_high + $gen_tables_high + $workspaceStation_high + $workspaceOffice_high + $techErgo_high + $ancillary_high + $taskLighting_high + $soundMasking_high; 
     ?> 


     <div class="col-lg-12 corporatecalculator_answer"> 
      <p style="margin:0px; padding-top:5px; padding-bottom:5px;"><b style="color:#000;">Total estimated budget (Based on list prices):</b><?php echo '<b style="color:#EE3B33;"> &#36;'.number_format($lowTotal).' - '.number_format($highTotal) .'</b>';?><p> 
      <hr> 
      <div class="BudgetResultsBorderHeader"><b style="color:#000;">Task & Meeting Chairs:</b><?php echo '&nbsp; &#36;'.number_format($taskMeetings_low).' - '.number_format($taskMeetings_high);?></div> 
       <?php if ($territory == "Louisiana"){?> 
      <div class=" flex-container "> <?php 
       RepLayout1('https://stackoverflow.com','/wp-content/uploads/2017/06/2.jpg','Stack Overlflow'); ?> 
      </div> 
     <?php 
       }  
       else if($territory == "Mississippi"){?> 
      <div class=" flex-container "> <?php 
       RepLayout1('https://stackoverflow.com','/wp-content/uploads/2017/06/3.jpg','Stack Overlflow'); ?> 
      </div>    
     <?php 
       } 

     } ?> 


     </div> 

     <?php 
    } 

?> 
+0

何、あなたがエラーを取得するかをありがとう@MagnusErikssonと@Justinas?また、varを 'null 'に設定すると、実際にはnullになり、*入力された番号を読み込まない*。また、あなたのHTMLはPHPの部分とは関係ありません。 – Justinas

+0

@Justinas私のHTML部分がエラーの原因ではないことを知らせてくれてありがとうと、varをnullに設定すると、入力された番号が読み取られなくなります。私が得ている正確なエラーは、両方の変数に対して手動で入力した数値を入力すると、数値の結果がゼロになっていることです。この場合、変数を ''に設定します。 ? – Gilgamesh90

+0

あなたのPHPがフォームから値を取得する方法がわかりません。あなたのコードに欠けている部分はありますか?そうでない場合は、サーバーサイド(PHP)とクライアントサイド(HTML/JS)の違いについて読んでおく必要があります。 Btw、あなたは現在、変数($ head_count)をnullに設定しています。それを数値として使用しようとしていますか?これはゼロとして扱われ、ゼロを使用することは_常に0になります。 –

答えて

0

実際の結果は、私は両方の変数にnullを削除し、可能に設定し、一度出演:

$head_count = (int)$_POST['head_count']; 
    $square_footage = (int)$_POST['sq_ft']; 
はPHP 101

関連する問題