• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

328
Views
¿Por qué el ajax no puede almacenar los datos en la base de datos?

PIC Mi objetivo es cuando presiono enter, los datos de entrada se guardarán en la base de datos.

El controlador:

 public function sendMessage(Request $request){ $data = Message::create([ 'from' => Auth::user()->id, 'to' => $request->receiver_id, 'message' => $request->message, 'is_Read' => 0, ]); $data->save(); }

La forma:

 <div class="card-footer"> <form id="message_form"> <div class="input-group"> <div class="input-group-append"> <span class="input-group-text attach_btn"><i class="fas fa-paperclip"></i></span> </div> <input type="text" name="message" id="message_input" class="form-control type_msg" placeholder="Type your message..."> </div> </form>

El código ajax:

 $(document).on('keyup', '.input-group input', function (e) { var message = $(this).val(); var url = '{{ url('message') }}'; // check if enter key is pressed and message is not null also receiver is selected if (e.keyCode == 13 && message != '' && receiver_id != '') { $(this).val(''); // while pressed enter text box will be empty var datastr = "receiver_id=" + receiver_id + "&message=" + message; $.ajax({ type: "post", url: '/message', // need to create this post route data: datastr, cache: false, success: function (data) { console.log(data) }, error: function (jqXHR, status, err) { }, complete: function () { } }) } })

La ruta:

 Route::post('message', [ConsultationController::class, 'sendMessage']);

Y como resultado, los datos no están en la base de datos y no hay notificación de error. Como puedo resolver esto? Por favor ayuda :)

Intento eliminar la declaración If en el código ajax, y esto sucede (500 ... (Error interno del servidor)) PIC :

 POST http://127.0.0.1:8000/message 500 (Internal Server Error) send @ jquery.min.js:2 ajax @ jquery.min.js:2 (anonymous) @ consultation?message=adfadf:399 dispatch @ jquery.min.js:2 v.handle @ jquery.min.js:2
about 3 years ago · Juan Pablo Isaza
2 answers
Answer question

0

¿Agregó sus columnas en la propiedad $fillable en el modelo Message?

about 3 years ago · Juan Pablo Isaza Report

0

Su código se ve bien, solo necesita tener en cuenta que en cada solicitud de publicación / colocación / eliminación, laravel requiere un token csrf para validar. Puede leer más sobre esta seguridad en la documentación de laravel .

Debe agregar esto en su solicitud de ajax.

 $.ajax({ type: "post", url: '/message', // need to create this post route data: { receiver_id, message, }, headers: { // Add this 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, cache: false, success: function (data) { console.log(data) }, error: function (jqXHR, status, err) { }, complete: function () { } })
about 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error