Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

162
Visualizações
El parámetro no se envía a la ruta Laravel en Ajax

Estoy trabajando con Laravel 5.8 y quería aplicar un sistema de código de descuento para mi sitio.

Así que intenté enviar datos con Ajax así:

 $.ajax({ type: 'POST', url: baseurl + 'discount/register', data: { coupon_code: finalDiscountValue, course_id: itemCourse, }, dataType: "json", success: function (data) { if(data == 99) { swal("Wrong discount code"); } else if (data == 130) { window.location.href = {!! json_encode(route('myCourseList')) !!} } else{ window.location.href = {!! json_encode(route('payCourseRegistrationWithDiscount', ['course'=>$item->cor_id,'value'=>$data['cartValueDiscountedWithCode'] ?? ''])) !!} } } });

Ahora mi problema es $data['cartValueDiscountedWithCode'] que no se envía al nombre de ruta definido.

Y esto se debe a que $data se devuelve en Ajax y su tipo es diferente de la otra variable que es $item->cor_id y es una variable basada en Laravel.

Así es como devuelvo $data en el controlador:

 public function registerWithDiscount() { $courseId = request('course_id'); $findCourse = Course::find($courseId); $getCoursePrice = $findCourse->cor_price; if ( request('course_id') == null ) { return 97; // The input was empty } ... $data['cartValueDiscountedWithCode'] = $getCoursePrice - $value_discounted; $data['discountedPrice'] = $value_discounted; $data['coupon_id'] = $coupon->id; $data['coupon_name'] = $coupon->name; if($data['discountedPrice'] >= $getCoursePrice){ $this->registerDiscountFree($courseId,$data['cartValueDiscountedWithCode']); session()->flash('registrationMessage', 'Your registration is completed'); return 130; // if the discount code makes the course free }else{ return $data; // if the remainer balance still needs to pay } }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puedes probar esto:

 let url = "{{ route('payCourseRegistrationWithDiscount',['course'=>$item->cor_id,'value'=>':cartValueDiscountedWithCode']) }}"; url = url.replace(':cartValueDiscountedWithCode', data.cartValueDiscountedWithCode); window.location.href = url;

No puede pasar el valor de respuesta ajax así. En su lugar, agregue una cadena dentro de la ruta y luego reemplace con el valor de respuesta

about 4 years ago · Juan Pablo Isaza Relatório

0

lo que tendrá que hacer es agregar el parámetro como ejemplo {value?} opcional

y luego agregue la hoja

 window.location.href = {{route('payCourseRegistrationWithDiscount', ['course'=>$item->cor_id]) }}}+'/'+data.cartValueDiscountedWithCode
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda