DmitrMakeev commited on
Commit
ad70c61
·
verified ·
1 Parent(s): 540791a

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +45 -32
nutri_call.html CHANGED
@@ -337,25 +337,8 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
337
  return value;
338
  };
339
 
340
- // Преобразование формата удобрений (химические формулы -> русские названия)
341
- const fertilizerMap = {
342
- "CaN2O6": "Кальциевая селитра",
343
- "KNO3": "Калий азотнокислый",
344
- "K2SO4": "Калий сернокислый",
345
- "NH4NO3": "Аммоний азотнокислый",
346
- "MgSO4": "Сульфат магния",
347
- "KH2PO4": "Монофосфат калия"
348
- };
349
-
350
- // Преобразование формата элементов (NO3 -> N (NO3-))
351
- const nutrientMap = {
352
- "NO3": "N (NO3-)",
353
- "NH4": "N (NH4+)"
354
- };
355
-
356
  // Формируем данные в ТОЧНОМ формате, как на сервере
357
  const serverData = {
358
- // 1. Константы удобрений (как NUTRIENT_CONTENT_IN_FERTILIZERS)
359
  fertilizerConstants: {
360
  "Кальциевая селитра": {
361
  "N (NO3-)": getValue('fert_ca_no3') / 100,
@@ -382,8 +365,6 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
382
  "S": getValue('fert_k2so4_s') / 100
383
  }
384
  },
385
-
386
- // 2. Настройки профиля (как BASE_PROFILE)
387
  profileSettings: {
388
  'P': getValue('profile_k'),
389
  'K': getValue('profile_ca'),
@@ -396,31 +377,63 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
396
  }
397
  };
398
 
399
- // Выводим данные для проверки (НЕ отправляем!)
400
  console.log("Сформированные данные для сервера:");
401
  console.log(JSON.stringify(serverData, null, 2));
402
-
403
- // Проверка соответствия формату
404
- console.log("Проверка формата данных:");
405
 
406
  // Проверка удобрений
407
- const expectedFertilizers = ["Кальциевая селитра", "Калий азотнокислый", "Аммоний азотнокислый",
408
- "Сульфат магния", "Монофосфат калия", "Калий сернокислый"];
409
- for (const fert of expectedFertilizers) {
 
 
 
410
  if (!serverData.fertilizerConstants[fert]) {
411
  console.error(`Отсутствует удобрение: ${fert}`);
 
412
  }
413
  }
414
 
415
- // Проверка элементов профиля
416
- const expectedProfileKeys = ['P', 'K', 'Mg', 'Ca', 'S', 'N (NO3-)', 'N (NH4+)', 'liters'];
417
- for (const key of expectedProfileKeys) {
418
- if (serverData.profileSettings[key] === undefined) {
419
- console.error(`Отсутствует поле профиля: ${key}`);
 
420
  }
421
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
422
 
423
- console.log("Проверка завершена. Данные НЕ отправлены на сервер.");
424
  });
425
  </script>
426
 
 
337
  return value;
338
  };
339
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
340
  // Формируем данные в ТОЧНОМ формате, как на сервере
341
  const serverData = {
 
342
  fertilizerConstants: {
343
  "Кальциевая селитра": {
344
  "N (NO3-)": getValue('fert_ca_no3') / 100,
 
365
  "S": getValue('fert_k2so4_s') / 100
366
  }
367
  },
 
 
368
  profileSettings: {
369
  'P': getValue('profile_k'),
370
  'K': getValue('profile_ca'),
 
377
  }
378
  };
379
 
380
+ // Выводим данные для проверки
381
  console.log("Сформированные данные для сервера:");
382
  console.log(JSON.stringify(serverData, null, 2));
383
+
384
+ // Проверка на ошибки
385
+ let hasErrors = false;
386
 
387
  // Проверка удобрений
388
+ const requiredFertilizers = [
389
+ "Кальциевая селитра", "Калий азотнокислый", "Аммоний азотнокислый",
390
+ "Сульфат магния", "Монофосфат калия", "Калий сернокислый"
391
+ ];
392
+
393
+ for (const fert of requiredFertilizers) {
394
  if (!serverData.fertilizerConstants[fert]) {
395
  console.error(`Отсутствует удобрение: ${fert}`);
396
+ hasErrors = true;
397
  }
398
  }
399
 
400
+ // Проверка элементов
401
+ const requiredElements = ['P', 'K', 'Mg', 'Ca', 'S', 'N (NO3-)', 'N (NH4+)'];
402
+ for (const elem of requiredElements) {
403
+ if (isNaN(serverData.profileSettings[elem])) {
404
+ console.error(`Некорректное значение для элемента ${elem}`);
405
+ hasErrors = true;
406
  }
407
  }
408
+
409
+ if (hasErrors) {
410
+ console.error("Обнаружены ошибки в данных! Отправка отменена.");
411
+ return;
412
+ }
413
+
414
+ // Отправка данных на сервер
415
+ console.log("Отправка данных на сервер...");
416
+ const xhr = new XMLHttpRequest();
417
+ xhr.open("POST", "/calculation", true);
418
+ xhr.setRequestHeader("Content-Type", "application/json");
419
+
420
+ xhr.onreadystatechange = function() {
421
+ if (xhr.readyState === 4) {
422
+ console.log("Статус ответа:", xhr.status);
423
+ if (xhr.status === 200) {
424
+ console.log("Успешный ответ от сервера:", JSON.parse(xhr.responseText));
425
+ } else {
426
+ console.error("Ошибка сервера:", xhr.status, xhr.statusText);
427
+ console.error("Текст ошибки:", xhr.responseText);
428
+ }
429
+ }
430
+ };
431
+
432
+ xhr.onerror = function() {
433
+ console.error("Ошибка сети при отправке запроса");
434
+ };
435
 
436
+ xhr.send(JSON.stringify(serverData));
437
  });
438
  </script>
439