2017-02-17 72 views
1

我正在嘗試使用CI和Ajax製作一些計算程序。 計算結果是成功的,但是,當我想用​​if條件的變量顯示結果時,該變量不會顯示,但結果正在工作。所以我對這個很困惑,而且已經處於邊緣。 如果有任何可用的參考,請告訴我。抱歉我的英文不好。用Ajax顯示結果

這裏的控制器:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Kalkulator extends CI_Controller{ 

    public function __construct(){ 
     parent::__construct(); 
    } 

    public function index(){ 
     $hasil ['hasil']= 0; 
     $hasil ['laba'] = ''; 
     $this->load->view('Hitungan', $hasil); 
    } 
    public function hitung() 
    { 
     $v1 = $this->input->post('v1'); 
     $v2 = $this->input->post('v2'); 
     $v3 = $this->input->post('v3'); 
     $v4 = $this->input->post('v4'); 
     $v5 = $this->input->post('v5'); 
     $v6 = $this->input->post('v6'); 
     $v1 = $v1; 
     $v2 = $v2; 
     $v3 = $v3; 
     $v4 = $v4; 
     $v5 = $v5; 
     $v6 = $v6; 
     $laba = ''; 
     $hasil = 0; 
     $hasil = ((($v2*$v3*$v4)+($v1*$v5))/$v6); 
     $nilai['hasil'] = round($hasil*50)."%" .$laba; 
     echo json_encode($nilai); 
     if ($nilai['hasil'] < 30) { 
      $laba = "Budidaya Anda akan gagal"; 
     } 
    } 
} 

腳本:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".submit").click(function(event) { 
      event.preventDefault(); 
      var bilangan1 = $("#v1").val(); 
      var bilangan2 = $("#v2").val(); 
      var bilangan3 = $("#v3").val(); 
      var bilangan4 = $("#v4").val(); 
      var bilangan5 = $("#v5").val(); 
      var bilangan6 = $("#v6").val(); 
      jQuery.ajax({ 
       type: "POST", 
       url: "<?php echo base_url(); ?>"+"index.php/kalkulator/hitung", 
       dataType: 'json', 
       data: {v1: bilangan1, v2: bilangan2, v3: bilangan3, v4: bilangan4, v5: bilangan5, v6: bilangan6}, 
       success: function(res) { 
        jQuery("#value").html(res.hasil); 
       } 
      }); 
     }); 
    }); 
</script> 

的HTML:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>Kalkulator</title> 
    <link href="<?php echo base_url();?>css/bootstrap.min.css" rel="stylesheet"> 
    <link rel="stylesheet" type="text/css" href="<?php echo base_url();?>css/style.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    </head> 
    <body> 
    <div class="container"> 
     <h1 class="form-header"></h1> 
     <form class="form-horizontal"> 
      <?php echo form_open(); ?> 
     <h2>Kalkulator Hitungan</h2> 
     <br> 
     <div class="form-group col-sm-12"> 
      <label class="control-label col-sm-3">Padat Tebar Ikan</label> 
      <div class="col-sm-6"> 
      <?php 
         $v1 = array(
         'class'  => 'form-control', 
         'type'  => 'number', 
         'name'  => 'v1', 
         'id'  => 'v1' 
         ); 
         echo form_input($v1); 
         ?> 
      </div> 
      <div class="col-sm-3"> 
      <label class="control-label ">/ekor</label> 
      </div> 
     </div> 
     <div class="form-group col-sm-12"> 
      <label class="control-label col-sm-3">Panjang Kolam</label> 
      <div class="col-sm-6"> 
      <?php 
         $v2 = array(
         'class'  => 'form-control', 
         'type'  => 'number', 
         'name'  => 'v2', 
         'id'  => 'v2' 
         ); 
         echo form_input($v2); 
         ?> 
      </div> 
      <div class="col-sm-3"> 
      <label class="control-label ">/m2</label> 
      </div> 
     </div> 
     <div class="form-group col-sm-12"> 
      <label class="control-label col-sm-3">Lebar</label> 
      <div class="col-sm-6"> 
      <?php 
         $v3 = array(
         'class'  => 'form-control', 
         'type'  => 'number', 
         'name'  => 'v3', 
         'id'  => 'v3' 
         ); 
         echo form_input($v3); 
         ?> 
      </div> 
      <div class="col-sm-3"> 
      <label class="control-label ">/m2</label> 
      </div> 
     </div> 
     <div class="form-group col-sm-12"> 
      <label class="control-label col-sm-3">Tinggi</label> 
      <div class="col-sm-6"> 
      <?php 
         $v4 = array(
         'class'  => 'form-control', 
         'type'  => 'number', 
         'name'  => 'v4', 
         'id'  => 'v4' 
         ); 
         echo form_input($v4); 
         ?> 
      </div> 
      <div class="col-sm-3"> 
      <label class="control-label ">/m2</label> 
      </div> 
     </div> 
     <div class="form-group col-sm-12"> 
      <label class="control-label col-sm-3">Harga Benih per ekor</label> 
      <div class="col-sm-6"> 
      <?php 
         $v5 = array(
         'class'  => 'form-control', 
         'type'  => 'number', 
         'name'  => 'v5', 
         'id'  => 'v5' 
         ); 
         echo form_input($v5); 
         ?> 
      </div> 
      <div class="col-sm-3"> 
      <label class="control-label ">/ekor</label> 
      </div> 
     </div> 
     <div class="form-group col-sm-12"> 
      <label class="control-label col-sm-3">Harga Konsumsi per kg</label> 
      <div class="col-sm-6"> 
      <?php 
         $v6 = array(
         'class'  => 'form-control', 
         'type'  => 'number', 
         'name'  => 'v6', 
         'id'  => 'v6' 
         ); 
         echo form_input($v6); 
         ?> 
      </div> 
      <div class="col-sm-3"> 
      <label class="control-label ">/kg</label> 
      </div> 
     </div> 
     <div class="form-group col-sm-12"> 
      <label class="control-label col-sm-3"></label> 
      <div class="col-sm-6"> 
      <?php echo form_submit('submit', 'Hitung Sekarang', "class='btn btn-default submit'"); ?> 
      </div> 
      <div class="col-sm-3"> 
      <label class="control-label "></label> 
      </div> 
     </div> 
     <div class="form-group col-sm-12"> 
      <label class="control-label col-sm-3"></label> 
      <div class="col-sm-6"> 
      <output id="value"></output> 
      <?php echo form_close(); ?> 
      </div> 
      <div class="col-sm-3"> 
      <label class="control-label "></label> 
      </div> 
     </div> 


     </form> 
     <footer class="form-footer">&copy beagle company</footer> 
    </div> 
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 
    <script src="js/jquery.js"></script> 
    <!-- Include all compiled plugins (below), or include individual files as needed --> 
    <script src="js/bootstrap.min.js"></script> 
    </body> 
</html> 
+0

做這行的jQuery( 「#值」)的一個的console.log HTML(res.hasil)。我不好,我不明白你的語言,但這是這一行的結果?:if($ nilai ['hasil'] <30){ $ laba =「Budidaya Anda akan gagal」; } – Akintunde007

+0

是的,hasil是計算程序的結果。 –

回答

1

你寫太多的代碼,我們不需要。你也試圖比較一個字符串與int。 Php是一種鬆散耦合的語言,我們不需要在使用前初始化變量。我希望這會解決你的問題。

public function hitung() 
{ 
    $v1 = $this->input->post('v1'); 
    $v2 = $this->input->post('v2'); 
    $v3 = $this->input->post('v3'); 
    $v4 = $this->input->post('v4'); 
    $v5 = $this->input->post('v5'); 
    $v6 = $this->input->post('v6'); 

    $hasil = ((($v2*$v3*$v4)+($v1*$v5))/$v6); 
    $nilai = round($hasil*50); 

    if ($nilai < 30) { 
     $nilai = $nilai."%"; 
     $result = array(
     'laba' => "Budidaya Anda akan gagal", 
     'nilai' => $nilai 
     ); 
     echo json_encode($result); 
    }else{ 
     $nilai = $nilai."%"; 
     $result = array(
     'nilai' => $nilai 
     ); 
     echo json_encode($result); 
    } 
} 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".submit").click(function(event) { 
      event.preventDefault(); 
      var bilangan1 = $("#v1").val(); 
      var bilangan2 = $("#v2").val(); 
      var bilangan3 = $("#v3").val(); 
      var bilangan4 = $("#v4").val(); 
      var bilangan5 = $("#v5").val(); 
      var bilangan6 = $("#v6").val(); 
      jQuery.ajax({ 
       dataType: "json", 
       type: "POST", 
       url: "<?php echo base_url(); ?>"+"index.php/kalkulator/hitung", 
       data: {v1: bilangan1, v2: bilangan2, v3: bilangan3, v4: bilangan4, v5: bilangan5, v6: bilangan6}, 
       success: function(res) { 
        alert(res.laba); 
        alert(res.nilai); 
       } 
      }); 
     }); 
    }); 
</script> 
+0

是的,你的方法正在工作,但我想在$ laba變量旁邊顯示$ hasil輸出 –

+0

什麼您想發送的其他數據類型?因爲在你的問題中,你只是發送'$ laba' –

+0

我想把$ laba和$ hasil顯示在輸出端。對不起,我忘了說計算結果我的意思是$ hasil,它已經顯示在輸出中,但是當我想顯示$ laba時,它不會顯示。所以我問了在輸出中顯示兩個變量的方式。 –

0

你應該返回JSON代碼如果數據類型:JSON在你的jQuery

在控制器類Kalkulator擴展是CI_Controller { 和功能公共職能hitung() 你這樣做

echo json_encode($nilai); 

這是好的,因爲你發送Ajax調用與數據類型:Json的 所以,如果你想返回刪除該行並添加其他條件的條件,那麼你應該這樣嘗試

if ($nilai['hasil'] < 30) { 
     $laba = "Budidaya Anda akan gagal"; 
     echo json_encode(array('msg'=>$laba,'data'=>$nilai)); 
} 
else{ 
    echo json_encode($nilai); 
} 

因此,通過這個,你可以,如果條件得到裏面也值在jQuery的這個 資源

+0

你應該返回Json代碼如果在你的jquery中有dataType:json –

+0

不知何故,在我的if條件中輸入echo json_encode之後,計算<30不會顯示。 –

+0

這意味着你正在給出兩個回聲。 讓我們將兩個回聲組合在一起用於測試目的 –

0

如果您的條件不正確。你所比較的

$nilai['hasil'] = round($hasil*50)."%" .$laba; 

所以這裏$nilai['hasil']將有值'90%」例如

和你比較

if ($nilai['hasil'] < 30) 

這意味着

if ('90%' < 30) 

這將不滿足

在一些可變第一所以存儲然後比較,然後追加 '%'

$hasil = round($hasil*50); 
$nilai = array(); 
    if($hasil < 30) { 
    $nilai['hasil'] = $hasil . "%" . $laba; 
    $laba = "Budidaya Anda akan gagal"; 
    } 
echo json_encode($nilai);