DmitrMakeev commited on
Commit
e20f377
·
verified ·
1 Parent(s): ed1e40f

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +15 -16
nutri_call.html CHANGED
@@ -332,8 +332,9 @@
332
 
333
  <script>
334
  document.getElementById('calculate-btn').addEventListener('click', function() {
335
- // 1. Получаем значение точности округления
336
- const roundingPrecision = parseInt(document.getElementById('rounding-precision').value) || 3;
 
337
 
338
  // 2. Улучшенная функция для безопасного получения числового значения
339
  const getValue = (id) => {
@@ -346,7 +347,7 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
346
  return isNaN(value) ? 0 : value;
347
  };
348
 
349
- // 3. Формируем данные для сервера
350
  const requestData = {
351
  fertilizerConstants: {
352
  "Кальциевая селитра": {
@@ -382,17 +383,16 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
382
  'S': getValue('profile_s'),
383
  'NO3_RAT': getValue('profile_no3'),
384
  'TOTAL_NITROG': getValue('profile_n'),
385
- 'liters': parseInt(document.getElementById('liters-input').value) || 1
 
386
  }
387
  };
388
 
389
- // 3. Проверка данных
390
  const requiredFertilizers = ["Кальциевая селитра", "Калий азотнокислый", "Аммоний азотнокислый",
391
  "Сульфат магния", "Монофосфат калия", "Калий сернокислый"];
392
 
393
  let hasErrors = false;
394
-
395
- // Проверяем наличие всех удобрений
396
  for (const fert of requiredFertilizers) {
397
  if (!requestData.fertilizerConstants[fert]) {
398
  console.error(`Отсутствует удобрение: ${fert}`);
@@ -400,7 +400,6 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
400
  }
401
  }
402
 
403
- // Проверяем основные параметры профиля
404
  const requiredProfileFields = ['P', 'K', 'Mg', 'Ca', 'S', 'NO3_RAT', 'TOTAL_NITROG'];
405
  for (const field of requiredProfileFields) {
406
  if (isNaN(requestData.profileSettings[field])) {
@@ -414,7 +413,9 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
414
  return;
415
  }
416
 
417
- // 4. Отправка данных на сервер
 
 
418
  fetch('/calculation', {
419
  method: 'POST',
420
  headers: {
@@ -423,18 +424,16 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
423
  body: JSON.stringify(requestData)
424
  })
425
  .then(response => {
426
- if (!response.ok) {
427
- throw new Error(`HTTP error! status: ${response.status}`);
428
- }
429
  return response.json();
430
  })
431
  .then(data => {
432
- console.log("Успешный ответ от сервера:", data);
433
- // Здесь можно добавить обработку успешного ответа
434
  })
435
  .catch(error => {
436
- console.error("Ошибка при отправке запроса:", error);
437
- alert("Произошла ошибка при расчете. Пожалуйста, попробуйте еще раз.");
438
  });
439
  });
440
  </script>
 
332
 
333
  <script>
334
  document.getElementById('calculate-btn').addEventListener('click', function() {
335
+ // 1. Получаем значение точности округления (гарантированно число от 0 до 6)
336
+ const roundingInput = document.getElementById('rounding-precision');
337
+ const roundingPrecision = Math.min(Math.max(parseInt(roundingInput.value) || 3, 6), 0);
338
 
339
  // 2. Улучшенная функция для безопасного получения числового значения
340
  const getValue = (id) => {
 
347
  return isNaN(value) ? 0 : value;
348
  };
349
 
350
+ // 3. Формируем данные для сервера (гарантированно включаем rounding_precision)
351
  const requestData = {
352
  fertilizerConstants: {
353
  "Кальциевая селитра": {
 
383
  'S': getValue('profile_s'),
384
  'NO3_RAT': getValue('profile_no3'),
385
  'TOTAL_NITROG': getValue('profile_n'),
386
+ 'liters': parseInt(document.getElementById('liters-input').value) || 1,
387
+ 'rounding_precision': roundingPrecision // Гарантированно добавляем параметр
388
  }
389
  };
390
 
391
+ // 4. Проверка данных (остается без изменений)
392
  const requiredFertilizers = ["Кальциевая селитра", "Калий азотнокислый", "Аммоний азотнокислый",
393
  "Сульфат магния", "Монофосфат калия", "Калий сернокислый"];
394
 
395
  let hasErrors = false;
 
 
396
  for (const fert of requiredFertilizers) {
397
  if (!requestData.fertilizerConstants[fert]) {
398
  console.error(`Отсутствует удобрение: ${fert}`);
 
400
  }
401
  }
402
 
 
403
  const requiredProfileFields = ['P', 'K', 'Mg', 'Ca', 'S', 'NO3_RAT', 'TOTAL_NITROG'];
404
  for (const field of requiredProfileFields) {
405
  if (isNaN(requestData.profileSettings[field])) {
 
413
  return;
414
  }
415
 
416
+ // 5. Отправка данных на сервер с логированием
417
+ console.log("Отправляемые данные (включая точность округления):", requestData);
418
+
419
  fetch('/calculation', {
420
  method: 'POST',
421
  headers: {
 
424
  body: JSON.stringify(requestData)
425
  })
426
  .then(response => {
427
+ if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
 
 
428
  return response.json();
429
  })
430
  .then(data => {
431
+ console.log("Ответ сервера:", data);
432
+ // Здесь можно добавить обработку ответа
433
  })
434
  .catch(error => {
435
+ console.error("Ошибка:", error);
436
+ alert("Ошибка при расчете: " + error.message);
437
  });
438
  });
439
  </script>