2017-02-17 9 views
1

Ich versuche, ein Berechnungsprogramm mit CI und Ajax zu machen. Das Berechnungsergebnis war ein Erfolg, aber wenn ich das Ergebnis mit einer Variablen mit einer if Bedingung zeigen möchte, wird die Variable nicht angezeigt, aber das Ergebnis funktionierte. Also bin ich wirklich verwirrt und schon am Rande. Wenn eine Referenz verfügbar ist, bitte sagen Sie mir. Und Entschuldigung für mein schlechtes Englisch.Ergebnis mit Ajax anzeigen

Hier ist der Controller:

<?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"; 
     } 
    } 
} 

Das Skript:

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

Die 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

eine console.log dieser Linie tun jQuery ("# value") html (res.hasil.); Mein schlechtes Ich verstehe deine Sprache nicht, aber ist das Ergebnis dieser Linie?: if ($ nilai ['hasil'] <30) { $ laba = "Budidaya Anda akan gagal"; } – Akintunde007

+0

Ja, hasil ist das Ergebnis des Berechnungsprogramms. –

Antwort

1

Sie haben bekommen zu viel Code schreiben, die wir nicht brauchen. Sie versuchen auch, eine Zeichenfolge mit int zu vergleichen. PHP ist eine lose gekoppelte Sprache, die wir vor der Verwendung nicht initialisieren müssen. Ich hoffe, das wird dein Problem lösen.

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

Ja, Ihre Methode funktioniert, aber ich möchte die $ hasil Ausgabe auch neben der Variable $ labla anzeigen –

+0

Was? Art von anderen Daten, die Sie senden möchten? weil du in deiner Frage nur das $ laba gesendet hast, –

+0

möchte ich $ labla und $ hasil auf der Ausgabeseite zeigen. Entschuldigung, ich habe vergessen zu sagen, dass das Berechnungsergebnis, das ich meinte, $ hasil war, es wird bereits in der Ausgabe gezeigt, aber wenn ich das $ laba zeigen will, wird es nicht angezeigt. So stellte ich die Möglichkeit, beide Variablen in der Ausgabe anzuzeigen. –

0

Sie Json Code zurückgeben sollte Wenn es Datentyp: json in Ihrem jquery

in Ihrem Controller Klasse Kalkulator erweitert CI_Controller { und Funktion public function hitung() Du diesen

echo json_encode($nilai); 

zu tun, die in Ordnung ist, weil Sie Ajax-Aufruf mit Datentyp senden: Json So, wenn Sie diese Zeile entfernen möchten und in der Bedingung sonst Bedingung hinzufügen, dann sollten Sie versuchen, wie folgt

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

durch diese So können Sie Wert innerhalb wenn die Bedingung auch in der jquery mit diesem res

+0

Sie sollten Json-Code zurückgeben Wenn es dataType: Json in Ihrem jquery gibt –

+0

Irgendwie, nach der Eingabe des Echos json_encode in meiner if-Bedingung, wird die Berechnung <30 nicht angezeigt. –

+0

Das bedeutet, Sie geben Put mit zwei Echo. Lets Kombinieren Sie beide Echo zusammen Für den Test Zweck –

0

Ihr wenn Bedingung ist nicht richtig. Was Sie vergleichen ist

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

so hier $nilai['hasil'] wird Wert '90%‘für

Beispiel haben und Sie sind

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

zu vergleichen, welche

if ('90%' < 30) 

dieser Wille bedeutet nicht erfüllen

so speichern, in einem gewissen ersten variablen dann vergleichen und dann append '%'

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