Устранение неполадок, из-за которых данные форм Laravel 9 и Ajax не сохраняются в базе данныхPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Устранение неполадок, из-за которых данные форм Laravel 9 и Ajax не сохраняются в базе данных

Сообщение Anonymous »

Я не могу сохранить данные формы с помощью Laravel 9 и Ajax. Имя города, долгота и широта берутся из файла JSON, поэтому, когда я выбираю город, его долгота и широта динамически заполняются. Ввожу вручную адрес и сохраняю форму, но выскакивает ошибка. Из контроллеров, когда я использовал функцию dd($workplaces), ничего не произошло, а из JavaScript console.log(data) выдает пустые данные[], как показано ниже. :

Смотрите здесь form data =
FormData(6) { _token → "SnoXgjegU7tuk3HdoWUoj88egv2evUyLDZnGroC5", city_name → "Bafoussam", адрес → "
qwerty
", широта → "5.4667", долгота → "10.4167", jobs_id → "" workplace:800:17
Ответ сервера:
Объект { draw: 0 , RecordsTotal: 0, RecordsFiltered: 0, data: [] workplace:809:25

Это говорит мне о том, что ошибка не является ошибкой. указан в файле журнала или в консоли браузера. Буду признателен за любую помощь в решении вопроса. Мой исходный код приведен ниже.
Контроллеры
public function store(Request $request)
{
$workplaces_id = $request->workplaces_id;
// dd($workplaces_id);

if ($request->ajax()) {
if ($workplaces_id != '') {
# update case
return $this->update($request, $workplaces_id);
} else {
# insert case
$validator = $request->validated();
// dd($validator);
try {
DB::beginTransaction();
$workplaces = Workplace::create(
[
'city_name' => $validator['city_name'],
'address' => $validator['address'],
'longitude' => $validator['longitude'],
'latitude' => $validator['latitude'],
'created_by' => \Auth::user()->id
]
);
DB::commit();
dd($workplaces);
return Response()->json(
[
'success' => true,
'data' => $workplaces,
'message' => trans('hrprofile::Workplace.job_pos_create')
]
);
} catch (\Exception $e) {
DB::rollback();
Log::error($e->getMessage());
return response()->json(['success' => false, 'message' => $e->getMessage()]);
}
}
}
}

JavaScript
// STORING DATA FORM INTO THE DATABASE
$('#WorkplaceForm').submit(function(e) {
e.preventDefault();
var addresses = tinyMCE.activeEditor.getContent();
$('#address').val(addresses);
var formData = new FormData(this);
console.log('Look here form data =', formData);
$.ajax({
type: 'POST',
url: "{{ route('workplace.store') }}",
data: formData,
cache: false,
contentType: false,
processData: false,
success: (data) => {
console.log('Server response:', data);
if (data.success) {
$("#workplace-modal").modal('hide');
toastr.success(data.message);
var oTable = $('#workplace-datatable').dataTable();
oTable.fnDraw(false);
$("#btn-save").html("{{ __('formular.save') }}");
$("#btn-save").attr("disabled", false)
} else {
toastr.error(data.message);
}
},
error: function(data) {
toastr.error(data.message);
}
});
});

// DROPDOWN FOR ALL CITIES DYNAMICALLY POPULATE LATITUDE & LONGITUDE
$(document).ready(function() {
$.getJSON('/assets/json/cm.json', function(data) {
// console.log('Data here = ', data);

$.each(data, function(key, value) {
// Improved option creation
$('#city_name').append($('').text(value.city).val(value.city));
});

$('#city_name').change(function() {
var selectedCityId = $(this).val();
var cityData = null;

$.each(data, function(key, value) {
if (value.city == selectedCityId) { // Use strict comparison (===)
cityData = value;
return false; // Exit the loop after finding the match
}
});

if (cityData) {
$('#latitude').val(cityData.lat);
$('#longitude').val(cityData.lng);
} else {
$('#latitude').val('');
$('#longitude').val('');
}
});
});
});

Вид формы

@csrf

{{-- WORPLACE NAME --}}



*
{{ __('hrprofile::workplace.wp_name') }}








{{-- ADDRESS --}}



{{ __('hrprofile::workplace.wp_address') }}





{{-- LONGITUDE | LATITUDE --}}



{{ __('hrprofile::workplace.wp_latitude') }} °



'workplaces_id']) !!}

{{ __('hrprofile::workplace.btn_save') }}

{{ __('hrprofile::workplace.btn_close') }}





Я пытался изменить контроллеры, как показано ниже, но все еще сталкиваюсь с той же проблемой.
public function store(Request $request)
{
$validator = $request->validate([
'city_name' => 'required',
'address' => 'nullable', // Update based on your requirement
'latitude' => 'required',
'longitude' => 'required',
]);

try {
DB::beginTransaction();
$workplaces = Workplace::create([
'city_name' => $validator['city_name'],
'address' => $validator['address'],
'longitude' => $validator['longitude'],
'latitude' => $validator['latitude'],
'created_by' => Auth::id(),
]);
DB::commit();

return response()->json([
'success' => true,
'data' => $workplaces,
'message' => trans('hrprofile::Workplace.job_pos_create'),
]);
} catch (\Exception $e) {
DB::rollback();
Log::error($e->getMessage());
return response()->json([
'success' => false,
'message' => 'An error occurred while saving data.',
]);
}
}



Подробнее здесь: https://stackoverflow.com/questions/783 ... o-database
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»