2016-12-15 6 views
0

ブートスラップのページで、私はjQueryを使ってさまざまなフォーミュラをzuに送信しています。 jQueryを使用して、結果を.phpから取り出してユーザーに表示しようとしています。私はPHPからの結果を得たときしかし、何かが私は理解して傾けることを起こった: 、着信応答は、結果、次のコンソール内のを与える: コマンド:
console.log("Test: "+response+"\n\n Test2: "+response.Richtwert1);
結果:

テスト:{「成功」を"True"、 "Liter1": "2000"、 "Entfernung1": "91.86"、 "Richtwert1": "2000"、 "PpLnetto1": "3.4"、 "PpLbrutto1": "4.04" 、 "Gesamtpreis1": "91.86"、 "Rechnung2":false、 "Rechnung3":false

Test2:unde罰金

ここの誰かがこの回答から私の価値を得るのを助けることができます。 私のプログラムの重要な部分に続いて:index.htmlをでjQのの 一部:

<script> 
    $(document).ready(function(){ 
     $('#Rechnen_button').on('click',function(){ 
      //Formular absenden 
      //Alte ErrorMeldungen entfernen 
      $('#KundennameZeile').removeClass('has-error'); 
      $('#LiterZeile1').removeClass('has-error'); 
      var formControl = true; 

      //Variable einsammeln 
      var Name = "Rechner"; 
      var Kundenname = $('#Kundenname').val(); 
      var LiterAuswahlFeld1 = $('#LiterAuswahlFeld1').text(); 
      var Liter1 = $('#Liter1').val(); 
      var AB1 = $('#AbladestellenAuswahlFeld1').text(); 
      var Raten1 = $('#RatenAuswahlFeld1').text(); 
      var Ort = $('#OrtAuswahlFeld').text(); 
      var Oel1 = $('#OelsorteAuswahlFeld1').text(); 
      var LiterAuswahlFeld2 = $('#LiterAuswahlFeld2').text(); 
      var Liter2 = $('#Liter2').val(); 
      var AB2 = $('#AbladestellenAuswahlFeld2').text(); 
      var Raten2 = $('#RatenAuswahlFeld2').text(); 
      var Oel2 = $('#OelsorteAuswahlFeld2').text(); 
      var LiterAuswahlFeld3 = $('#LiterAuswahlFeld3').text(); 
      var Liter3 = $('#Liter3').val(); 
      var AB3 = $('#AbladestellenAuswahlFeld3').text(); 
      var Raten3 = $('#RatenAuswahlFeld3').text(); 
      var Oel3 = $('#OelsorteAuswahlFeld3').text(); 

      //Kontrolle ob alles wichtige für Rechnung 1 da ist 
      if(Kundenname == '') { 
       formControl = false; 
       $('#KundennameZeile').addClass('has-error'); 
      } 

      if(Liter1 == '') { 
       formControl = false; 
       $('#LiterZeile1').addClass('has-error'); 
      } 

      if($.isNumeric(Liter1) == false) { 
       formControl = false; 
       $('#LiterZeile1').addClass('has-error'); 
      } 

      if(formControl) { 
       //Rechnung abschicken 
       $.ajax({ 
        type: "POST", 
        url: "post.php", 
        data: { 
         name:Name, 
         Kundenname:Kundenname, 
         LiterAuswahlFeld1:LiterAuswahlFeld1, 
         Liter1:Liter1, 
         AB1:AB1, 
         Raten1:Raten1, 
         Ort:Ort, 
         Oel1:Oel1, 
         LiterAuswahlFeld2:LiterAuswahlFeld2, 
         Liter2:Liter2, 
         AB2:AB2, 
         Raten2:Raten2, 
         Oel2:Oel2, 
         LiterAuswahlFeld3:LiterAuswahlFeld3, 
         Liter3:Liter3, 
         AB3:AB3, 
         Raten3:Raten3, 
         Oel3:Oel3 
        }, 
        success: function(response) { 
         console.log("Test: "+response+"\n\n Test2: "+response.Richtwert1); 
         if(!response.success) { 
          return response.msg; 
         } else {      
         $('#RichtwertErgebnis1').html(response.Richtwert1+' L.'); 
          $('#EntfernungErgebnis1').html(response.Entfernung1+' €'); 
          $('#PlLnettoErgebnis1').html(response.PpLnetto1+' Ct'); 
          $('#PpLbruttoErgebnis1').html(response.PpLbrutto1+' Ct'); 
          if(LiterAuswahlFeld1=="Liter") { 
           $('#GesamtbruttoErgebnis1').html(response.Gesamtpreis1+' €'); 
          } else { 
           $('#GesamtbruttoErgebnis1').html(response.Gesamtpreis1+' € ergeben '+response.Liter1+' L.'); 
           $('rechnungsergebnis_1 span:last-child').html('Gesamt brutto ergibt Liter'); 
          } 
         } 
        } 
       }); 
      } 
     }) 
    }) 
</script> 

post.php:すべて助けるため

<?php 
include 'config.php'; 

$name = $_POST['name']; 

if (strlen($name) > 0) { 
    if($name=='Rechner'){ 
     //Rechnung durchführen 
     $Kundenname = $_POST['Kundenname']; 
     $LiterAuswahlFeld1 = $_POST['LiterAuswahlFeld1']; 
     $Liter1 = $_POST['Liter1']; 
     $AB1 = $_POST['AB1']; 
     $Raten1 = $_POST['Raten1']; 
     $Ort = $_POST['Ort']; 
     $Oel1 = $_POST['Oel1']; 
     $LiterAuswahlFeld2 = $_POST['LiterAuswahlFeld2']; 
     $Liter2 = $_POST['Liter2']; 
     $AB2 = $_POST['AB2']; 
     $Raten2 = $_POST['Raten2']; 
     $Oel2 = $_POST['Oel2']; 
     $LiterAuswahlFeld3 = $_POST['LiterAuswahlFeld3']; 
     $Liter3 = $_POST['Liter3']; 
     $AB3 = $_POST['AB3']; 
     $Raten3 = $_POST['Raten3']; 
     $Oel3 = $_POST['Oel3']; 

//Something for you unimporant is deleted 

     if(strlen($name) > 0 && ((strlen($Liter1) > 0 && is_numeric($Liter1))||(strlen($Liter2) > 0 && is_numeric($Liter2))||(strlen($Liter3) > 0 && is_numeric($Liter3)))) { 
      if(strlen($Liter1) > 0 && is_numeric($Liter1)) { 
       //Rechnung 1 
       //Variablen Kontrolle 
       if($LiterAuswahlFeld1!=='Max. Betrag') {$LiterAuswahlFeld1="Liter";} 
       switch ($AB1) { 
        case 1; 
        case 2; 
        case 3; 
        case 4; 
        case 5; 
        case 6; 
        case 7; 
        case 8; 
        break; 
        default: 
         $AB1=1; 
         break; 
       } 
       switch ($Raten1) { 
        case 1: 
         $Raten1=0; 
         break; 
        case 2: 
         $Raten1=1; 
         break; 
        case 3; 
         $Raten1=2; 
         break; 
        default: 
         $Raten1=0; 
         break; 
       } 
       if($Oel1!=='Premium Heizöl') {$Oel1="Heizöl EL";} 

       //Werte berechnen 
       $rechnung1=preisrechner($Liter1, $LiterAuswahlFeld1, $AB1, $Raten1, $ortwert, $Oel1, $vkp); 

       //Ausgabe für Rechnung 
       $ergebnissRechnung1 = '"Rechnung1": true, "Liter1": "'.$rechnung1['Liter'].'", "Entfernung1": "'.$rechnung1['Entfernung'].'", "Richtwert1": "'.$rechnung1['Richtwert'].'", "PpLnetto1": "'.$rechnung1['PpLnetto'].'", "PpLbrutto1": "'.$rechnung1['PpLbrutto'].'", "Gesamtpreis1": "'.$rechnung1['Gesamtpreis'].'"'; 
      } else { 
       $ergebnissRechnung1 = '"Rechnung1": false'; 
      } 


      //Rechnung 2 
      if(strlen($Liter2) > 0 && is_numeric($Liter2)) { 
       //Variablen Kontrolle 
       if($LiterAuswahlFeld2!=='Max. Betrag') {$LiterAuswahlFeld2="Liter";} 
       switch ($AB2) { 
        case 1; 
        case 2; 
        case 3; 
        case 4; 
        case 5; 
        case 6; 
        case 7; 
        case 8; 
        break; 
        default: 
         $AB2=1; 
         break; 
       } 
       switch ($Raten2) { 
        case 1: 
         $Raten2=0; 
         break; 
        case 2: 
         $Raten2=1; 
         break; 
        case 3; 
         $Raten2=2; 
         break; 
        default: 
         $Raten2=0; 
         break; 
       } 
       if($Oel2!=='Premium Heizöl') {$Oel2="Heizöl EL";} 

       //Werte berechnen 
       $rechnung2=preisrechner($Liter2, $LiterAuswahlFeld2, $AB2, $Raten2, $ortwert, $Oel2, $vkp); 

       //Ausgabe für Rechnung 
       $ergebnissRechnung2 = '"Rechnung2": true, "Liter2": "'.$rechnung2['Liter'].'", "Entfernung2": "'.$rechnung2['Entfernung'].'", "Richtwert2": "'.$rechnung2['Richtwert'].'", "PpLnetto2": "'.$rechnung2['PpLnetto'].'", "PpLbrutto2": "'.$rechnung2['PpLbrutto'].'", "Gesamtpreis2": "'.$rechnung2['Gesamtpreis'].'"'; 
      } else { 
       $ergebnissRechnung2 = '"Rechnung2": false'; 
      } 

      //Rechnung 3 
      if(strlen($Liter3) > 0 && is_numeric($Liter3)) { 
       //Variablen Kontrolle 
       if($LiterAuswahlFeld3!=='Max. Betrag') {$LiterAuswahlFeld3="Liter";} 
       switch ($AB3) { 
        case 1; 
        case 2; 
        case 3; 
        case 4; 
        case 5; 
        case 6; 
        case 7; 
        case 8; 
        break; 
        default: 
         $AB3=1; 
         break; 
       } 
       switch ($Raten3) { 
        case 1: 
         $Raten3=0; 
         break; 
        case 2: 
         $Raten3=1; 
         break; 
        case 3; 
         $Raten3=2; 
         break; 
        default: 
         $Raten3=0; 
         break; 
       } 
       if($Oel3!=='Premium Heizöl') {$Oel3="Heizöl EL";} 

       //Werte berechnen 
       $rechnung3=preisrechner($Liter3, $LiterAuswahlFeld3, $AB3, $Raten3, $ortwert, $Oel3, $vkp); 

       //Ausgabe für Rechnung 
       $ergebnissRechnung3 = '"Rechnung3": true, "Liter3": "'.$rechnung3['Liter'].'", "Entfernung3": "'.$rechnung3['Entfernung'].'", "Richtwert3": "'.$rechnung3['Richtwert'].'", "PpLnetto3": "'.$rechnung3['PpLnetto'].'", "PpLbrutto3": "'.$rechnung3['PpLbrutto'].'", "Gesamtpreis3": "'.$rechnung3['Gesamtpreis'].'"'; 
      } else { 
       $ergebnissRechnung3 = '"Rechnung3": false'; 
      } 

      //Rückgabe 
      $ergebniss= '{"success": true, '.$ergebnissRechnung1.', '.$ergebnissRechnung2.', '.$ergebnissRechnung3.'}'; 
      echo $ergebniss; 

     } else { 
      header('HTTP/1.1 400 Bad Request', true, 400); 
      echo "Der Name und die Literanzahl von wenigstens einer Rechnung muss ausgefüllt sein."; 
     } 

    } else { 
     header('HTTP/1.1 400 Bad Request', true, 400); 
     echo "Etwas ist seltsam!"; 
    } 
} else { 
    header('HTTP/1.1 400 Bad Request-1', true, 400); 
    echo "Das Feld darf nicht leer sein!"; 
} 
?> 

ありがとう!

答えて

2

あなたはjson - 文字列 - があり、javascriptオブジェクトはありません。あなたはそれを手動で解析したり、jQueryのは、あなたのために自動的にそれを解析できるように、あなたが戻ってJSONを期待しているのjQueryを伝える必要があり

$.ajax({ 
    type: "POST", 
    // tell jQuery you expect json back 
    dataType: "json", 
    url: "post.php", 
    // etc. 

それとは別に、あなたはあなたのPHPスクリプトで手動でJSONを作成するべきではありません。その代わりに、必要なデータ構造を持つ配列を作成し、最後にjson_encode($your_data_structure)を使用して正しくエンコードします。

+1

偉大な答え、それは自分自身をより良く説明できませんでした。 – McStuffins

+0

あなたの答えをありがとう!私は 'dataType:" json "、'を$ .ajaxに追加し、この '$ ergebniss ['PpLnetto3'] = $ rechnung3 ['PpLnetto'];のようなコマンドで配列を作成し、最後に送信します'echo json_encode($ ergebniss);での配列;これでコンソールには何の結果もなく、エラーアラートも応答もありません。私はフォローアップエラーでしたか? – Faror

+0

@Faror開発者ツールの回答を確認する必要があります。何も得られない場合、返された結果は有効なjsonではなく、javascriptのエラーハンドラに行く可能性があります。あなたはおそらく他の何かをエコーし​​ていますか? – jeroen

関連する問題