2017-02-17 3 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

сделать console.log этой строки JQuery ("# значения") HTML (res.hasil). Мой плохой я не понимаю ваш язык, но является результатом этой линии?: if ($ nilai ['hasil'] <30) { $ laba = "Будидайа Анда акан гагал"; } – 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

Да, ваш метод работает, но я хочу показать выход $ hasil тоже рядом с переменной $ laba –

+0

Что какие другие данные вы хотите отправить? потому что в вашем вопросе вы только отправляли '$ laba' –

+0

Я хочу поместить $ laba и $ hasil для отображения на выходе. Извините, я забыл сказать, что вычисляемый результат, который я имел в виду, был $ hasil, он уже показан на выходе, но когда я хочу показать $ laba, он не будет отображаться. Итак, я спросил, как показывать переменную на выходе. –

0

Вы должны вернуть JSon код Если DATATYPE: JSON в вашем JQuery

В классе контроллера Kalkulator расширяет CI_Controller { и функция общественной функции hitung() Вы делаете это

echo json_encode($nilai); 

Это нормально, потому что вы отправляете Ajax вызов с ТипДанных: JSon Итак, если вы хотите вернуть Удалить эту линию и добавить условие состояния else, вы должны попробовать вот так:

Итак, это вы можете получить значение внутри, если условие также в JQuery с этим Реза

+0

Вы должны вернуть код Json. Если в вашем jquery есть dataType: json –

+0

Как-то после ввода echo json_encode в состоянии if if расчет <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); 
Смежные вопросы