Передача данных из формы ввода в ajax в Laravel

У меня есть список проектов и три типа платежей для любого проекта. Я хочу предоставить все типы платежей и отправить идентификатор платежа в ajax. Но я даю только id = 1 для всех запросов, мой код здесь:

@foreach($project->payments as $payment)
@if($payment->type==1)
@if(empty($payment->code))
<input type="hidden"id="payment_id"value="{{$payment->id}}">
<input type="text" class="form-control" id="paymentCode" name="paymentC">
{{csrf_field()}}
<button id="AddCode"  type=submit class="btn btn-info generate-label AddCode">enter</button>
@else
{{$payment->code}}
@endif

@elseif($payment->type==2)
@if(empty($payment->code))
<input type="hidden" id="payment_id" value="{{$payment->id}}">
<input type="text" class="form-control" name="paymentC" id="paymentCode">
{{csrf_field()}}
<button id="AddCode" type="submit" class="btn btn-info generate-label AddCode">enter</button>
@else
{{$payment->code}}
@endif
@endif
@endforeach

Код Javascript:

$('.AddCode').click (function (event) {
var payment_id = $('#payment_id').val();
var paymentCode = $('#paymentCode').val();
console.log(payment_id);
});

Как я могу решить мою проблему, чтобы при нажатии на кнопку оплаты распечатать этот идентификатор?

2

Решение

Попробуй это

@foreach($project->payments as $payment)
@if($payment->type==1)
@if(empty($payment->code))
<div>
<input type="hidden" id="payment_id" value="{{$payment->id}}">
<input type="text" class="form-control" id="paymentCode" name="paymentC">
{{csrf_field()}}
<button id="AddCode" class="btn btn-info generate-label AddCode">enter</button>
</div>
@else
{{$payment->code}}
@endif

@elseif($payment->type==2)
@if(empty($payment->code))
<div>
<input type="hidden" id="payment_id" value="{{$payment->id}}">
<input type="text" class="form-control" name="paymentC" id="paymentCode">
{{csrf_field()}}
<button id="AddCode" class="btn btn-info generate-label AddCode">enter</button>
</div>
@else
{{$payment->code}}
@endif
@endif
@endforeach

Код Javascript:

$('.AddCode').click (function (event) {
var payment_id = $(this).closest('div').find("#payment_id").val();
var paymentCode = $(this).closest('div').find("#paymentCode").val();
console.log(payment_id);
});
0

Другие решения

Вы не нацелены на уникальный идентификатор с var payment_id = $('#payment_id').val();

Изменить эту строку HTML

<button id="AddCode" type="submit" class="btn btn-info generate-label AddCode">enter</button>

В

<button value="{{$payment->id}}" type="submit" class="btn btn-info generate-label AddCode">enter</button>

JQuery

$('.AddCode').on("click", function(event){
var payment_id = $(this).val(); // payment id
});
1

Идентификатор должен быть уникальным для отдельной сущности HTML.

Обновление кода:

{{csrf_field()}}
@foreach($project->payments as $payment)
@if($payment->type==1)
@if(empty($payment->code))
<input type="hidden"id="payment-id-1"value="{{$payment->id}}">
<input type="text" class="form-control" id="payment-code-1" name="payment_code">
<button type=submit class="btn btn-info generate-label add-code" data-payment=1>enter</button>
@else
{{$payment->code}}
@endif

@elseif($payment->type==2)
@if(empty($payment->code))
<input type="hidden" id="payment_id_2" value="{{$payment->id}}">
<input type="text" class="form-control" name="payment_code" id="paymentCode">

<button type="submit" class="btn btn-info generate-label add-code" data-payment=1>enter</button>
@else
{{$payment->code}}
@endif
@endif
@endforeach

Код Javascript:

$('.add-code').on("click", function(event){
var payment_type = $(this).data("payment");
var payment_id = $('#payment-id-'+payment_type).val();
var paymentCode = $('#payment-code-'+payment_type).val();
});

Попробуйте это. Не испытано.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector