Php 无法在Laravel Blade中显示Jquery和Ajax错误消息

Php 无法在Laravel Blade中显示Jquery和Ajax错误消息,php,jquery,laravel,laravel-5.4,Php,Jquery,Laravel,Laravel 5.4,我在Laravel中使用Ajax和Jquery插入分类账记录。成功消息已正确显示,但错误自定义消息无法在刀片视图中显示。我犯了什么错请告诉我 Jquery: $("#add").click(function(event) { event.preventDefault(); $.ajax({ type: 'post', url: $("#add").attr('data-url'), data: { '_token': $("input[name=_t

我在Laravel中使用Ajax和Jquery插入分类账记录。成功消息已正确显示,但错误自定义消息无法在刀片视图中显示。我犯了什么错请告诉我

Jquery:

$("#add").click(function(event) {
  event.preventDefault();

  $.ajax({
    type: 'post',
    url: $("#add").attr('data-url'),
    data: {
      '_token': $("input[name=_token]").val(),
      'form_data': $('#Form').serialize(),
    },
    success: function(data) {
      $('#ledger_name').val('');
      $('#openning_balance').val('');
      $('#ob_type').val('');
      $('#under').val('');
      $('#ledger_address').val('');
      $("#newLedger .close").click();

      $(".result").html(data.success).css({
        'color': 'green',
        'text-align': 'center'
      }).delay(5000).fadeOut();
    },
    error: function(data) {
      $('#response').show().html(data.error).css({
        'color': 'red',
        'text-align': 'center'
      }).delay(5000).fadeOut();
    }
  });
});
$values = array();
    parse_str($_POST['form_data'], $values);

    $validation = $this->validator($values,true );
    if($validation->fails()){
    $errors = $validation->errors();
    return response()->json(['error' => 'Please Fill all Mandatory Fields',],500);
    }

    $insertledgers=Ledger::create(['ledger_name'=>$values['ledger_name'],'openning_balance'=>$values['openning_balance'],'ob_type'=>$values['ob_type'],'under'=>$values['under'],'ledger_address'=>$values['ledger_address'],'company_id'=>$companyids,'user_id'=>$usersid,'created_by'=>$usersid]);

    $ledgerinsertids=$insertledgers->id;

    if($values['ob_type'] == 'Cr'){

    $creditamts=$values['openning_balance'];
    $debitamts= 0;

    } else {

    $creditamts=0;
    $debitamts= $values['openning_balance'];

    }

    $insertledgeropenningbalance=Openningbalance::create(['ledgerid'=>$ledgerinsertids,'opening_credit'=>$creditamts,'opening_debit'=>$debitamts,'company_id' => $companyids,'user_id' => $usersid,'created_by' => $usersid,]);

    return response()->json(['success' => 'Ledger Details Added Successfully',],200);   
控制器:

$("#add").click(function(event) {
  event.preventDefault();

  $.ajax({
    type: 'post',
    url: $("#add").attr('data-url'),
    data: {
      '_token': $("input[name=_token]").val(),
      'form_data': $('#Form').serialize(),
    },
    success: function(data) {
      $('#ledger_name').val('');
      $('#openning_balance').val('');
      $('#ob_type').val('');
      $('#under').val('');
      $('#ledger_address').val('');
      $("#newLedger .close").click();

      $(".result").html(data.success).css({
        'color': 'green',
        'text-align': 'center'
      }).delay(5000).fadeOut();
    },
    error: function(data) {
      $('#response').show().html(data.error).css({
        'color': 'red',
        'text-align': 'center'
      }).delay(5000).fadeOut();
    }
  });
});
$values = array();
    parse_str($_POST['form_data'], $values);

    $validation = $this->validator($values,true );
    if($validation->fails()){
    $errors = $validation->errors();
    return response()->json(['error' => 'Please Fill all Mandatory Fields',],500);
    }

    $insertledgers=Ledger::create(['ledger_name'=>$values['ledger_name'],'openning_balance'=>$values['openning_balance'],'ob_type'=>$values['ob_type'],'under'=>$values['under'],'ledger_address'=>$values['ledger_address'],'company_id'=>$companyids,'user_id'=>$usersid,'created_by'=>$usersid]);

    $ledgerinsertids=$insertledgers->id;

    if($values['ob_type'] == 'Cr'){

    $creditamts=$values['openning_balance'];
    $debitamts= 0;

    } else {

    $creditamts=0;
    $debitamts= $values['openning_balance'];

    }

    $insertledgeropenningbalance=Openningbalance::create(['ledgerid'=>$ledgerinsertids,'opening_credit'=>$creditamts,'opening_debit'=>$debitamts,'company_id' => $companyids,'user_id' => $usersid,'created_by' => $usersid,]);

    return response()->json(['success' => 'Ledger Details Added Successfully',],200);   

您只需修改错误回调函数,如下所示:

error : function (data) {
    $('#response').show().html(data.responseJSON.error).css({
        'color': 'red',
        'text-align': 'center'
    }).delay(5000).fadeOut();
}
谢谢@voodoo417

试试这个:

<?php
use Validator;

class SomeController extends Controller {

  public function SomeFunction(Request $request) {
    $values = array();
    parse_str($_POST['form_data'], $values);

    $validation = Validator::make($values, true);

    if($validation->fails()){
      $errors = $validation->errors();
      return response()->json(['error' => 'Please Fill all Mandatory Fields'], 500);
    }

    $insertledgers=Ledger::create(['ledger_name'=>$values['ledger_name'],'openning_balance'=>$values['openning_balance'],'ob_type'=>$values['ob_type'],'under'=>$values['under'],'ledger_address'=>$values['ledger_address'],'company_id'=>$companyids,'user_id'=>$usersid,'created_by'=>$usersid]);

    $ledgerinsertids=$insertledgers->id;

    if($values['ob_type'] == 'Cr'){

      $creditamts=$values['openning_balance'];
      $debitamts= 0;

    } else {

      $creditamts=0;
      $debitamts= $values['openning_balance'];

    }

    $insertledgeropenningbalance=Openningbalance::create(['ledgerid'=>$ledgerinsertids,'opening_credit'=>$creditamts,'opening_debit'=>$debitamts,'company_id'
    => $companyids,'user_id' => $usersid,'created_by' => $usersid,]);

    return response()->json(['success' => 'Ledger Details Added Successfully',],200);

发布您的刀片视图改进的代码格式抱歉,但您的“解决方案”是marasm。。。。您是否看到响应在出错时返回500,在成功时返回200?当然它不会起作用。@voodoo417:我没有注意到第二个参数。非常感谢。