2014-04-08 4 views
0

현재 PHP로 자동차 대출 계산기를 개발 중입니다. 사용자 입력은 차량 구입 가격, 기탁금, 이자율, 풍선 비율, 대출 기간 (개월 단위) 및 2 개의 필수 입력란입니다.텍스트 입력 및 php의 선택을 기반으로 변수 표시

내 수학은 100 % 작동하며, 제 스크립트를 실행하면 모든 답을 보여 주면서 증인이 나옵니다. 수학은 문제가 아닙니다.

사용자가 모든 필드를 완료하지 않는 경우가 종종 있습니다. 여기에 조건은 다음과 같습니다

  1. 사용자가 모든 필드 ($monthlyInstallmentBoth)
  2. 사용자 완료 구매 가격, 예금, 관심과 TERM (풍선을 선택하지 않은) ($monthlyInstallmentDeposit)
  3. 사용자가 구매 가격을 완료,이자를 완료 풍선 및 용어 ($monthlyInstallmentBalloon)을 (보증금을 선택하지 않은)
  4. 사용자는 구매 가격, 관심과 TERM (보증금 또는 풍선을 선택하지 않은) ($mp)
완료

은 위의 조건과 변수를 가정 : 여기

  • $mp
    1. $monthlyInstallmentBoth
    2. $monthlyInstallmentDeposit
    3. $monthlyInstallmentBalloon
    4. 내 질문 : 나는 모든 옵션은 $monthlyInstallmentBoth을 때 표시 어떻게 선택 또는 표시 만 $monthlyInstallmentDeposit 풍선 % 이 아니며 예금이 이 아니거나이 아닌 경우 $mp 만 표시되고 예금이없고 풍선 비율이 인 경우에만 $monthlyInstallmentBalloon이 표시됩니다.

      switch 문을 사용했지만 그 순간에 내가 필요한 것이 확실하지 않습니다. 왜냐하면 그건 효과가 없기 때문이야.

      <?php 
      ////////////////// 
      //Math Variables// 
      ////////////////// 
      
      // $r = interest 
      // $p = principle purchase price 
      // $br = balloon rate in % 
      // $d = deposit 
      
      //balloon percentage in decimals: $br/100 
      //balloon amount: $ba = $p x $br 
      //principle less deposit: $dp = $p - $d 
      
      // $x = formula to calculate amount for p to be devided by 
      
      //monthly installment: $mp = $np/$Sx 
      
      //////////////////////// 
      //Variables from input// 
      //////////////////////// 
      
      //$principle (textbox) [name=principle] 
      //$deposit (textbox) [name=deposit] 
      //$term (dropdown) [name=term] 
      //$interest (dropdown) [name=interest] 
      //$balloon (dropdown) [name=ballon] 
      //57 (disabled input) = 57 (monthly) [name=admin] 
      //$initiation (disabled input) = 1140 [name=initiation] 
      
      ?> 
      
      <form method="post" action=""> 
      
      <label for="principle">What is the total purchase price?</label> 
      <input type="text" name="principle" id="principle" value="100000"> 
      
      <label for="deposit">How much deposit are you paying?</label> 
      <input type="text" name="deposit" id="deposit" value="0"> 
      
      <label for="term">How many months to repay the loan?</label> 
      <select name="term" id="term"> 
          <option>72</option> 
          <option>60</option> 
          <option>54</option> 
          <option>48</option> 
          <option>36</option> 
          <option>24</option> 
          <option>12</option> 
      </select> 
      
      <label for="balloon">What balloon % would you like, if any?</label> 
      <select name="balloon" id="balloon"> 
          <option>0</option> 
          <option>5</option> 
          <option>10</option> 
          <option>15</option> 
          <option>20</option> 
          <option>25</option> 
          <option>30</option> 
          <option>35</option> 
          <option>40</option> 
          <option>45</option> 
          <option>50</option> 
      </select> 
      
      <label for="interest">What interest rate will you be paying?</label> 
      <select name="interest" id="interest"> 
          <option>7</option> 
          <option>7.5</option> 
          <option>8</option> 
          <option>8.5</option> 
          <option>9</option> 
          <option>9.5</option> 
          <option>10</option> 
          <option>10.5</option> 
          <option>11</option> 
          <option>11.5</option> 
          <option>12</option> 
          <option>12.5</option> 
          <option>13</option> 
          <option>13.5</option> 
          <option>14</option> 
          <option>14.5</option> 
          <option>15</option> 
          <option>15.5</option> 
          <option>16.5</option> 
      </select> 
      
      <label for="admin">Bank's monthly admin fee</label> 
      <input type="text" name="admin" id="admin" value="57" disabled> 
      
      <label for="initiation">Finance initiation fee</label> 
      <input type="text" name="initiation" id="initiation" value="1140" disabled><br /> 
      
      <input type="submit" value="Calculate"> 
      
      </form> 
      
      <?php 
      
      if (isset($_POST['principle'])) $principleInput = $_POST['principle']; 
      if (isset($_POST['deposit'])) $depositInput = $_POST['deposit']; 
      if (isset($_POST['term'])) $termInput = $_POST['term']; 
      if (isset($_POST['interest'])) $interestInput = $_POST['interest']; 
      if (isset($_POST['balloon'])) $balloonInput = $_POST['balloon']; 
      
      $principleInputFinal = $principleInput + 1140; 
      echo "Finance Amount: " . $principleInputFinal; 
      
      //interest 
      $r = $interestInput/12/100; 
      echo "<br /><br />Interest: " . $r; 
      
      //inputted balloon % in decimals 
      $br = $balloonInput/100; 
      echo "<br /><br />Balloon Rate: " . $br; 
      
      //Balloon Amount 
      $ba = $principleInput * $br; 
      echo "<br /><br />Balloon Amount: " . $ba; 
      
      //Solve for x 
      $x1 = 1 + $r; 
      
      $x2 = pow($x1,-$termInput); 
      
      $x3 = 1 - $x2; 
      
      $x = $x3/$r; 
      echo "<br /><br />" . $x; 
      
      //if balloon was selected, calculate new principle 
      $mpb = $principleInputFinal - $ba; 
      echo "<br /><br />New Principle Less Balloon: " . $mpb; 
      
      //deposit without balloon selected 
      $mpd = $principleInputFinal - $depositInput; 
      echo "<br /><br />Principle Less Deposit: " . $mpd; 
      
      //deposit with balloon selected 
      $mpdb = $mpb - $depositInput; 
      echo "<br /><br />Principle less balloon less deposit: " . $mpdb; 
      
      //no deposit and no balloon: calculate monthly installment on actual principle 
      $mp = $principleInputFinal/$x + 57; 
      echo "<br /><br />Installment on actual principle: " . $mp; 
      
      //interest payed on balloon amount. 
      $bar = $ba * $r; 
      echo "<br /><br />" . $bar; 
      
      //monthly installment less the interest payed for 
      $mpbar = $mp - $bar; 
      echo "<br /><br />" . $mpbar; 
      
      //calculate monthly installment with no balloon but with deposit 
      $monthlyInstallmentDeposit = $mpd/$x + 57; 
      echo "<br /><br />Installment on principle less deposit: " . $monthlyInstallmentDeposit; 
      
      //calculate monthly installment with balloon but no deposit 
      $monthlyInstallmentBalloon = $mpb/$x + $bar + 57; 
      echo "<br /><br />Installment on principle less balloon, no deposit calculated: " . $monthlyInstallmentBalloon; 
      
      //calculate monthly installment with both balloon and deposit 
      $monthlyInstallmentBoth = $mpdb/$x + $bar + 57; 
      echo "<br /><br />Installment on principle less deposit and balloon" . $monthlyInstallmentBoth; 
      
      
      
      switch ($monthlyInstallment) { 
          case ($principleInputFinal/$x + 57): 
           echo "<br /><br />Installment on actual principle: " . $monthlyInstallment; 
           break; 
      
          case ($mpd/$x + $bar + 57): 
           echo "<br /><br />Installment on principle less deposit: " . $monthlyInstallment; 
           break; 
      
          case ($mpb/$x + $bar + 57): 
           echo "<br /><br />Installment on principle less balloon, no deposit calculated: " . $monthlyInstallment; 
           break; 
      
          case ($mpdb/$x + $bar + 57): 
           echo "<br /><br />Installment on principle less deposit and balloon: " . $monthlyInstallment; 
           break; 
      } 
      
      ?> 
      

      수학 변수에 휘말리고하지 마십시오 :

      아래에있는 내 코드를 참조하십시오. 필요한 변수는 다음과 같습니다.

      인쇄하려는 변수는 $mp, $monthlyInstallmentDeposit, $monthlyInstallmentBalloon, $monthlyInstallmentBoth입니다.

    답변

    0

    이 그것을 할 수있는 더러운 방법이 될 수도 있지만 그것은 작동 :

    if (($depositInput > 0) && ($balloonInput > 0)) { 
        echo "<br /><br />1: Installment on principle less deposit and balloon" . $monthlyInstallmentBoth; 
    } elseif (($depositInput > 0) && ($balloonInput <= 0)) { 
        echo "<br /><br />2: Installment on principle less deposit: " . $monthlyInstallmentDeposit; 
    } elseif (($depositInput <= 0) && ($balloonInput > 0)) { 
        echo "<br /><br />3: Installment on principle less balloon, no deposit calculated: " . $monthlyInstallmentBalloon; 
    } else { 
        echo "<br /><br />4: Installment on actual principle: " . $mp; 
    }