DmitrMakeev commited on
Commit
38c91f0
·
verified ·
1 Parent(s): 3ee0ff9

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +32 -25
nutri_call.html CHANGED
@@ -326,7 +326,7 @@
326
 
327
  <script>
328
  document.getElementById('calculate-btn').addEventListener('click', function() {
329
- // 1. Функция для безопасного получения числового значения
330
  const getValue = (id) => {
331
  const element = document.getElementById(id);
332
  const value = parseFloat(element.value);
@@ -334,35 +334,35 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
334
  console.error(`Ошибка: поле ${id} содержит не число! Значение:`, element.value);
335
  return 0;
336
  }
337
- return value;
338
  };
339
 
340
- // 2. Формируем данные в ТОЧНОМ формате для сервера
341
  const requestData = {
342
  fertilizerConstants: {
343
  "Кальциевая селитра": {
344
- "N (NO3-)": getValue('fert_ca_no3') / 100,
345
- "Ca": getValue('fert_ca_ca') / 100
346
  },
347
  "Калий азотнокислый": {
348
- "N (NO3-)": getValue('fert_kno3_no3') / 100,
349
- "K": getValue('fert_kno3_k') / 100
350
  },
351
  "Аммоний азотнокислый": {
352
- "N (NO3-)": getValue('fert_nh4no3_no3') / 100,
353
- "N (NH4+)": getValue('fert_nh4no3_nh4') / 100
354
  },
355
  "Сульфат магния": {
356
- "Mg": getValue('fert_mgso4_mg') / 100,
357
- "S": getValue('fert_mgso4_s') / 100
358
  },
359
  "Монофосфат калия": {
360
- "P": getValue('fert_kh2po4_p') / 100,
361
- "K": getValue('fert_kh2po4_k') / 100
362
  },
363
  "Калий сернокислый": {
364
- "K": getValue('fert_k2so4_k') / 100,
365
- "S": getValue('fert_k2so4_s') / 100
366
  }
367
  },
368
  profileSettings: {
@@ -377,15 +377,21 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
377
  }
378
  };
379
 
380
- // 3. Выводим данные для проверки
381
  console.log("Данные для отправки на сервер:");
382
  console.log(JSON.stringify(requestData, null, 2));
383
 
384
- // 4. Проверка данных
385
  let hasErrors = false;
386
- const requiredFertilizers = ["Кальциевая селитра", "Калий азотнокислый", "Аммоний азотнокислый",
387
- "Сульфат магния", "Монофосфат калия", "Калий сернокислый"];
388
-
 
 
 
 
 
 
389
  for (const fert of requiredFertilizers) {
390
  if (!requestData.fertilizerConstants[fert]) {
391
  console.error(`Отсутствует удобрение: ${fert}`);
@@ -393,7 +399,7 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
393
  }
394
  }
395
 
396
- const requiredElements = ['P', 'K', 'Mg', 'Ca', 'S', 'N (NO3-)', 'N (NH4+)'];
397
  for (const elem of requiredElements) {
398
  if (isNaN(requestData.profileSettings[elem])) {
399
  console.error(`Некорректное значение для элемента ${elem}`);
@@ -406,12 +412,12 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
406
  return;
407
  }
408
 
409
- // 5. Отправка данных на сервер
410
  console.log("Отправка данных на сервер...");
411
  const xhr = new XMLHttpRequest();
412
  xhr.open("POST", "/calculation", true);
413
  xhr.setRequestHeader("Content-Type", "application/json");
414
-
415
  xhr.onreadystatechange = function() {
416
  if (xhr.readyState === 4) {
417
  console.log("Статус ответа:", xhr.status);
@@ -423,16 +429,17 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
423
  }
424
  }
425
  };
426
-
427
  xhr.onerror = function() {
428
  console.error("Ошибка сети при отправке запроса");
429
  };
430
-
431
  xhr.send(JSON.stringify(requestData));
432
  });
433
  </script>
434
 
435
 
 
436
 
437
  </body>
438
  </html>
 
326
 
327
  <script>
328
  document.getElementById('calculate-btn').addEventListener('click', function() {
329
+ // Функция безопасного получения округлённого числового значения
330
  const getValue = (id) => {
331
  const element = document.getElementById(id);
332
  const value = parseFloat(element.value);
 
334
  console.error(`Ошибка: поле ${id} содержит не число! Значение:`, element.value);
335
  return 0;
336
  }
337
+ return parseFloat(value.toFixed(5));
338
  };
339
 
340
+ // Формируем данные в точном формате для сервера с округлением
341
  const requestData = {
342
  fertilizerConstants: {
343
  "Кальциевая селитра": {
344
+ "N (NO3-)": parseFloat((getValue('fert_ca_no3') / 100).toFixed(5)),
345
+ "Ca": parseFloat((getValue('fert_ca_ca') / 100).toFixed(5))
346
  },
347
  "Калий азотнокислый": {
348
+ "N (NO3-)": parseFloat((getValue('fert_kno3_no3') / 100).toFixed(5)),
349
+ "K": parseFloat((getValue('fert_kno3_k') / 100).toFixed(5))
350
  },
351
  "Аммоний азотнокислый": {
352
+ "N (NO3-)": parseFloat((getValue('fert_nh4no3_no3') / 100).toFixed(5)),
353
+ "N (NH4+)": parseFloat((getValue('fert_nh4no3_nh4') / 100).toFixed(5))
354
  },
355
  "Сульфат магния": {
356
+ "Mg": parseFloat((getValue('fert_mgso4_mg') / 100).toFixed(5)),
357
+ "S": parseFloat((getValue('fert_mgso4_s') / 100).toFixed(5))
358
  },
359
  "Монофосфат калия": {
360
+ "P": parseFloat((getValue('fert_kh2po4_p') / 100).toFixed(5)),
361
+ "K": parseFloat((getValue('fert_kh2po4_k') / 100).toFixed(5))
362
  },
363
  "Калий сернокислый": {
364
+ "K": parseFloat((getValue('fert_k2so4_k') / 100).toFixed(5)),
365
+ "S": parseFloat((getValue('fert_k2so4_s') / 100).toFixed(5))
366
  }
367
  },
368
  profileSettings: {
 
377
  }
378
  };
379
 
380
+ // Выводим данные для проверки
381
  console.log("Данные для отправки на сервер:");
382
  console.log(JSON.stringify(requestData, null, 2));
383
 
384
+ // Проверка данных
385
  let hasErrors = false;
386
+ const requiredFertilizers = [
387
+ "Кальциевая селитра",
388
+ "Калий азотнокислый",
389
+ "Аммоний азотнокислый",
390
+ "Сульфат магния",
391
+ "Монофосфат калия",
392
+ "Калий сернокислый"
393
+ ];
394
+
395
  for (const fert of requiredFertilizers) {
396
  if (!requestData.fertilizerConstants[fert]) {
397
  console.error(`Отсутствует удобрение: ${fert}`);
 
399
  }
400
  }
401
 
402
+ const requiredElements = ['P', 'K', 'Mg', 'Ca', 'S', 'NO3_RAT', 'TOTAL_NITROG'];
403
  for (const elem of requiredElements) {
404
  if (isNaN(requestData.profileSettings[elem])) {
405
  console.error(`Некорректное значение для элемента ${elem}`);
 
412
  return;
413
  }
414
 
415
+ // Отправка данных на сервер
416
  console.log("Отправка данных на сервер...");
417
  const xhr = new XMLHttpRequest();
418
  xhr.open("POST", "/calculation", true);
419
  xhr.setRequestHeader("Content-Type", "application/json");
420
+
421
  xhr.onreadystatechange = function() {
422
  if (xhr.readyState === 4) {
423
  console.log("Статус ответа:", xhr.status);
 
429
  }
430
  }
431
  };
432
+
433
  xhr.onerror = function() {
434
  console.error("Ошибка сети при отправке запроса");
435
  };
436
+
437
  xhr.send(JSON.stringify(requestData));
438
  });
439
  </script>
440
 
441
 
442
+
443
 
444
  </body>
445
  </html>