Почему я всегда получаю неопределенное значение из других данных?

#ajax #laravel

Вопрос:

Например, я всегда получаю неопределенные значения из других данных: ID:123 ответ на это будет NetAmount: 1000.00 после отправки с помощью запроса AJAX GET, поэтому для других данных он просто вернет undefined значение.

МОЙ АЯКС

 function viewBill(AccountNum){
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
        $.ajax({
            method: "GET",
            url: "{{ route('view.billing') }}",
            data: {AccountNum:AccountNum},
            dataType: 'json',
            async: true,
            beforeSend: function() {$('#userBill').html('Getting Information...')},
            success: function(res) {
                console.log(res.NetAmount);
                $('#checkBill').css('display','block');
                $('#userBill').html('₱ ' res.NetAmount);
            },
            error: function(res) {console.log('Error');},
            complete: function() {

            }
        });
    }
 

Мой Контроллер

 public function viewBilling(Request $request){
        if($request->ajax()){
            $viewBilling = Table1::addSelect(['PaymentStatus' => Table2::selectRaw('COUNT(*)')
            ->whereColumn('AccountNumber','Table1.AccountNumber')
            ->whereColumn('ServicePeriodEnd','Table1.ServicePeriodEnd')
            ->where('AccountNumber', $request->AccountNum)
            ])->where('AccountNumber', $request->AccountNum)
            ->orderBy('ServicePeriod','desc')
            ->first();
            return Response()->json($viewBilling);
        }
    }
 

Я попробовал использовать dd() , и оказалось, что для учетной записи, которую я попробовал, есть значения из той, которая возвращает NetAmount значение, и из той, которая возвращает undefined значение.

Комментарии:

1. если ваш запрос возвращается пустым, вы можете проверить его с помощью: dd или инструментов разработки chrome для проверки результата ajax

2. @ChinhNguyen Я проверил с помощью dd(), у него был ответ для обоих, тот, который отображал сетевое число, и тот, который отображал неопределенное, тот, с которым я запутался, — это почему он отображал неопределенное значение. поэтому я проверил, используя инструменты разработчика, из того, что я видел, свойств не найдено, но когда я попытался получить доступ к маршруту без использования кнопки, и это дало мне свойства, включая сетевое подключение.

Ответ №1:

Обнаружена проблема, из-за параметра моей viewBill() функции я не знаю, почему он дает мне неопределенные значения из других данных, которые я проверял с помощью сетевых инструментов, просто он не смог отправить номер учетной записи контроллеру. Поэтому я попытался удалить параметр. У меня есть входной тег, который уже содержит значение номера учетной записи, поэтому вместо использования приведенного выше кода я сделал это

 function viewBill(){
var AccountNum = $('#inputAccountNum1').val();
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    $.post({
        url: "{{ route('view.billing') }}",
        data: {AccountNum:AccountNum},
        dataType: 'json',
        beforeSend: function() {$('#userBill').html('Getting Information...')},
        success: function(res) {
            $('#checkBill').css('display','block');
            $('#userBill').html('₱ ' res.NetAmount);
        },
        error: function(res) {console.log('Error');},
        complete: function() {

        }
    });
}