2016-08-02 7 views
-1

Ich bin neu in Laravel und irgendwie neu zu JQuery auch so bitte mit mir. So in eines meiner Ansichten habe ich eine Form:Handeling JSON in Laravel Controller

<table id="tblAShip" class="report table table-condensed table-hover table-sorter"> 
<thead class="no-sort"> 
    <tr> 
     <th>Height</th> 
     <th>Width</th> 
     <th>Length</th> 
     <th>Weight</th> 
     <th>Create parcel</th> 
    </tr> 
</thead> 
<tbody> 
    <tr> 
     <td><input id="height" name="height" type="number" /></td> 
     <td><input id="width" name="width" type="number" /></td> 
     <td><input id="length" name="length" type="number" /></td> 
     <td><input id="weight" name="weight" type="number" /></td> 
     <td><input type="button" name ="creatShip" id="creatShip" value="Ajouter"></td> 
    </tr> 
</tbody> 

Dann ist diese Form von einem JS behandelt wird, die ein Ajax

function creerParcel(){ 
var docNum = $("#commandeNum").val(); 

var hei = $("#height").val(); 
var wid = $("#width").val(); 
var len = $("#length").val(); 
var wei = $("#weight").val(); 
$.ajax({ 
    type: "POST", 
    url: "/EasyPostNetBanks/Shipment/"+docNum, 
    contentType: "application/json; charset=utf-8", 
    processData: false, 
    data: { 
     "Parcels":[{ 
      "length": len, 
      "width": wid, 
      "height": hei, 
      "weight": wei }] 
    }, 
    error: function(jqXHR, textStatus, errorThrown) 
    { 

    }, 
    success: function(data){ 
    } 
}); 

dann in meinem Controller rufen macht versuche ich gehe retreive Diese Daten, um eine Sendung mit den Päckchen Informationen zu erstellen, die ich von meinem Ajax Anruf

bekommen habe, aber meine \ Input :: ge t ('Parzellen') ist immer NULL \ n. Wie ist es möglich? Ich habe fast alles versucht, was ich online finden konnte, aber ohne Erfolg, hier bin ich (erster Beitrag BTW. Hallo alle!).

Antwort

0

Haben Sie versucht, die Netzwerkregisterkarte in einem Browser anzuzeigen, um zu sehen, ob alles so wie erwartet auf den Server gesendet wird? Öffnen Sie beispielsweise in Chrome das Kontrollfeld, klicken Sie normalerweise mit der rechten Maustaste und wählen Sie "Element prüfen". Schauen Sie dann auf der Registerkarte "Netzwerk" nach, was genau an den Server gesendet wird.

Wenn die Ajax-Post richtig aussieht, wird es helfen, genau einzugrenzen, wo das Problem liegt. Wenn es nicht das Front-End ist, versuchen Sie sterben und dump dd($variable) auf den gesamten Post-Ergebnissen.

Sie können dies tun, indem Sie Folgendes irgendwo in der Steuerung verwenden.

+0

Ich bekomme einen Fehler 500 in meiner Netzwerk-Tabelle, dd (Input :: all()) funktioniert nicht (wegen der fehlenden Eingabe, denke ich). die Laravel.log geben Sie mir diese Illuminate \ Foundation \ Bootstrap \ HandleExceptions-> HandleError (2, 'Ungültiges argumen ...', '/ var/www/EasyPo ...', 85, Array) – Markasius

0

OK, stellt sich heraus, es war mein processData: false, das verursachte das Problem, alberne mich.