2016-08-02 2 views
-1

Я новичок в Laravel и новичок в JQuery, так что несите со мной, пожалуйста. Таким образом, в одном из моих взглядов у меня есть форма:Перемешивание JSON в контроллере Laravel

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

Затем эта форма обрабатывается JS, составляющим 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){ 
    } 
}); 

то в моем контроллере я стараюсь идти извлечь эти данные для создания отгрузки с информацией о посылке, полученной от моего звонка Ajax

foreach(\Input::get('Parcels') as $parcelInfo) 
    { 
     $parcel = $this->CreateParcel($parcelInfo); 

     $shipment = Shipment::create(array(
      "to_address" => $to, 
      "reference"=>$idCommande, 
      "from_address" => $from, 
      "parcel" => $parcel, 
      "options" => array("label_format" => "ZPL") 
     )); 

     $ship = \Shipments::creer($shipment); 
     $shipments[] = $ship; 
    } 

но my \ Input :: ge t («Посылки») всегда NULL \ n. Как это возможно? Я пробовал почти все, что мог найти в Интернете, но безрезультатно, поэтому я (первый пост BTW. Привет всем!).

ответ

0

Вы пробовали просматривать вкладку сети в браузере, чтобы узнать, отправлено ли все на сервер так, как вы ожидаете? Например, в Chrome откройте панель контроля, как правило, щелкните правой кнопкой мыши, а затем выберите «Осмотреть элемент». Затем зайдите на вкладку «Сеть», чтобы увидеть, что именно отправляется на сервер.

Если сообщение ajax выглядит правильно, то это поможет сузить то, где проблема. Если это не интерфейс, попробуйте умереть и свалить dd($variable) на все результаты публикации.

Вы можете сделать это, используя следующее в контроллере.

dd(Input::all()); 
+0

Я получаю сообщение об ошибке 500 в моей сетевой таблице, dd (Input :: all()) не работает (из-за отсутствия ввода, я думаю). laravel.log дайте мне это Illuminate \ Foundation \ Bootstrap \ HandleExceptions-> handleError (2, 'Invalid argumen ...', '/ var/www/EasyPo ...', 85, Array) – Markasius

0

ОК, выясняется, что это был мой процесс. Данные: ложные, что вызвало проблему, глупо меня.

Смежные вопросы