soil-submit.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596
  1. <?php
  2. error_reporting(E_ALL);
  3. //error_reporting(E_ALL ^ E_NOTICE);
  4. ini_set('display_errors', 1);
  5. $errorLog = 0;
  6. if(isset($_POST['SoilcsvForm'])) {
  7. if ($errorLog = "1") { error_log(print_r($_POST, true), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); }
  8. $sql = null;
  9. $con = mysqli_connect("localhost", "cropmonitor", "brvnCcaEYxlPCS3", "cropmonitor");
  10. //set todays date
  11. $date = date("Y-m-d H:i:s");
  12. // ****************************************************************************
  13. // Client Details
  14. $client_id = (isset($_POST["client_id"])) ? $_POST["client_id"] : "";
  15. $modx_id = (isset($_POST["m_user"])) ? $_POST["m_user"] : "";
  16. $email = (isset($_POST["email"])) ? $_POST["email"] : "";
  17. $client_name = (isset($_POST["name"])) ? $_POST["name"] : "";
  18. $site_address = (isset($_POST["site_address"])) ? $_POST["site_address"] : "";
  19. $state_postcode = (isset($_POST["state_postcode"])) ? $_POST["state_postcode"] : "";
  20. // Analysis Details
  21. $analysis_type = "Soil Test"; //for future types of Soil Analysis
  22. $lab_no = (isset($_POST["lab_no"])) ? $_POST["lab_no"] : "";
  23. $batch_no = (isset($_POST["batch_no"])) ? $_POST["batch_no"] : "";
  24. $sample_id = (isset($_POST["sample_id"])) ? $_POST["sample_id"] : "";
  25. $site_id = (isset($_POST["site_id"])) ? $_POST["site_id"] : "";
  26. $crop_type = (isset($_POST["crop_type"])) ? $_POST["crop_type"] : "";
  27. $soil_type = (isset($_POST["soil_type"])) ? $_POST["soil_type"] : "";
  28. $date_sampled = (isset($_POST["date_sampled"])) ? $_POST["date_sampled"] : "";
  29. $date_sampled = date("Y-m-d", strtotime($date_sampled));
  30. // Sample Details
  31. $texture = (isset($_POST["texture"])) ? $_POST["texture"] : "";
  32. $gravel = (isset($_POST["gravel"])) ? $_POST["gravel"] : "";
  33. $colour = (isset($_POST["colour"])) ? $_POST["colour"] : "";
  34. $ocarbon = (isset($_POST["ocarbon"])) ? $_POST["ocarbon"] : "";
  35. $omatter = (isset($_POST["omatter"])) ? $_POST["omatter"] : "";
  36. $ph_cacl2 = (isset($_POST["ph_cacl2"])) ? $_POST["ph_cacl2"] : "";
  37. $ph_h2o = (isset($_POST["ph_h2o"])) ? $_POST["ph_h2o"] : "";
  38. $paramag = (isset($_POST["paramag"])) ? $_POST["paramag"] : "";
  39. $ec = (isset($_POST["ec"])) ? $_POST["ec"] : "";
  40. // Nutrient Details
  41. $NO3_N = (isset($_POST["NO3_N"])) ? $_POST["NO3_N"] : "";
  42. $NH3_N = (isset($_POST["NH3_N"])) ? $_POST["NH3_N"] : "";
  43. $p_mehlick = (isset($_POST["p_mehlick"])) ? $_POST["p_mehlick"] : "";
  44. $p_bray2 = (isset($_POST["p_bray2"])) ? $_POST["p_bray2"] : "";
  45. $p_morgan = (isset($_POST["p_morgan"])) ? $_POST["p_morgan"] : "";
  46. $k_morgan = (isset($_POST["k_morgan"])) ? $_POST["k_morgan"] : "";
  47. $ca_morgan = (isset($_POST["ca_morgan"])) ? $_POST["ca_morgan"] : "";
  48. $mg_morgan = (isset($_POST["mg_morgan"])) ? $_POST["mg_morgan"] : "";
  49. $na_morgan = (isset($_POST["na_morgan"])) ? $_POST["na_morgan"] : "";
  50. $ch_h2o = (isset($_POST["ch_h2o"])) ? $_POST["ch_h2o"] : "";
  51. $fe = (isset($_POST["fe"])) ? $_POST["fe"] : "";
  52. $s_morgan = (isset($_POST["s_morgan"])) ? $_POST["s_morgan"] : "";
  53. $b_cacl2 = (isset($_POST["b_cacl2"])) ? $_POST["b_cacl2"] : "";
  54. $mn_dtpa = (isset($_POST["mn_dtpa"])) ? $_POST["mn_dtpa"] : "";
  55. $zn_dtpa = (isset($_POST["zn_dtpa"])) ? $_POST["zn_dtpa"] : "";
  56. $fe_dtpa = (isset($_POST["fe_dtpa"])) ? $_POST["fe_dtpa"] : "";
  57. $cu_dtpa = (isset($_POST["cu_dtpa"])) ? $_POST["cu_dtpa"] : "";
  58. $al = (isset($_POST["al"])) ? $_POST["al"] : "";
  59. $sl_cacl2 = (isset($_POST["sl_cacl2"])) ? $_POST["sl_cacl2"] : "";
  60. $m_dtpa = (isset($_POST["m_dtpa"])) ? $_POST["m_dtpa"] : "";
  61. $co_dtpa = (isset($_POST["co_dtpa"])) ? $_POST["co_dtpa"] : "";
  62. $se = (isset($_POST["se"])) ? $_POST["se"] : "";
  63. // Base Saturation Details
  64. $tec = (isset($_POST["tec"])) ? $_POST["tec"] : "";
  65. $cec = (isset($_POST["cec"])) ? $_POST["cec"] : "";
  66. //Base Saturation as M.E./100g
  67. $ca_mehlick3 = (isset($_POST["ca_mehlick3"])) ? $_POST["ca_mehlick3"] : "";
  68. $mg_mehlick3 = (isset($_POST["mg_mehlick3"])) ? $_POST["mg_mehlick3"] : "";
  69. $k_mehlick3 = (isset($_POST["k_mehlick3"])) ? $_POST["k_mehlick3"] : "";
  70. $na_mehlick3 = (isset($_POST["na_mehlick3"])) ? $_POST["na_mehlick3"] : "";
  71. $al_mehlick3 = (isset($_POST["al_mehlick3"])) ? $_POST["al_mehlick3"] : "";
  72. //Base Saturation as PPM
  73. if ($_POST["calcium_me3"] == "ppm") {
  74. $ca_mehlick3 = (isset($_POST["ca_mehlick3_ppm"])) ? ($_POST["ca_mehlick3_ppm"] / 200) : "";
  75. }
  76. if ($_POST["magnesium_me3"] == "ppm") {
  77. $mg_mehlick3 = (isset($_POST["mg_mehlick3_ppm"])) ? ($_POST["mg_mehlick3_ppm"] / 120) : "";
  78. }
  79. if ($_POST["postassium_me3"] == "ppm") {
  80. $k_mehlick = (isset($_POST["k_mehlick3_ppm"])) ? ($_POST["k_mehlick3_ppm"] / 390) : "";
  81. }
  82. if ($_POST["soduim_me3"] == "ppm") {
  83. $na_mehlick3 = (isset($_POST["na_mehlick3_ppm"])) ? ($_POST["na_mehlick3_ppm"] / 230) : "";
  84. }
  85. // Totals for Ratis
  86. $c_total = (isset($_POST["c_total"])) ? $_POST["c_total"] : "";
  87. $n_total = (isset($_POST["n_total"])) ? $_POST["n_total"] : "";
  88. //Create Carbon Nitrogen Ratio if not specified
  89. if ($_POST["c_nRatio"] = "") {
  90. $c_nRatio = (isset($_POST["c_nRatio"])) ? $_POST["c_nRatio"] : "";
  91. } else {
  92. $c_nRatio = ( $c_total / $n_total );
  93. }
  94. //Create CA MG Ratio if not specified
  95. if ($_POST["ca_mgRatio"] = "") {
  96. $ca_mgRatio = (isset($_POST["ca_mgRatio"])) ? $_POST["ca_mgRatio"] : "";
  97. } else {
  98. $ca_mgRatio = ( (int)$ca_mehlick3 / (int)$mg_mehlick3 );
  99. }
  100. //$rand = substr(md5(microtime()),rand(0,26),5);
  101. $rand = mt_rand(10000, 99999);
  102. // PH lookup table (ph*10 rounded to single decimal point for easy lookup)
  103. $phrange = array(
  104. 30 => [75.0, 11.4],
  105. 31 => [74.0, 11.2],
  106. 32 => [73.0, 11.0],
  107. 33 => [72.0, 10.8],
  108. 34 => [71.0, 10.6],
  109. 35 => [70.0, 10.4],
  110. 36 => [69.0, 10.2],
  111. 37 => [68.0, 10.0],
  112. 38 => [67.0, 9.8],
  113. 39 => [66.0, 9.6],
  114. 40 => [65.0, 9.4],
  115. 41 => [63.0, 9.2],
  116. 42 => [61.0, 9.0],
  117. 43 => [59.0, 8.8],
  118. 44 => [57.0, 8.6],
  119. 45 => [55.0, 8.4],
  120. 46 => [53.0, 8.2],
  121. 47 => [51.0, 8.0],
  122. 48 => [49.0, 7.8],
  123. 49 => [47.0, 7.6],
  124. 50 => [45.0, 7.4],
  125. 51 => [42.0, 7.2],
  126. 52 => [39.0, 7.0],
  127. 53 => [36.0, 6.8],
  128. 54 => [33.0, 6.6],
  129. 55 => [30.0, 6.4],
  130. 56 => [27.0, 6.2],
  131. 57 => [24.0, 6.0],
  132. 58 => [21.0, 5.8],
  133. 59 => [18.0, 5.6],
  134. 60 => [15.0, 5.4],
  135. 61 => [13.5, 5.3],
  136. 62 => [12.0, 5.2],
  137. 63 => [10.5, 5.1],
  138. 64 => [9.0, 5.0],
  139. 65 => [7.5, 4.9],
  140. 66 => [6.0, 4.8],
  141. 67 => [4.5, 4.7],
  142. 68 => [3.0, 4.6],
  143. 69 => [1.5, 4.5],
  144. 70 => [0.0, 4.4],
  145. 71 => [0.0, 4.3],
  146. 72 => [0.0, 4.2],
  147. 73 => [0.0, 4.1],
  148. 74 => [0.0, 4.0],
  149. 75 => [0.0, 3.9],
  150. 76 => [0.0, 3.8],
  151. 77 => [0.0, 3.7],
  152. 78 => [0.0, 3.6],
  153. 79 => [0.0, 3.5],
  154. 80 => [0.0, 3.4],
  155. 81 => [0.0, 3.3],
  156. 82 => [0.0, 3.2],
  157. 83 => [0.0, 3.1],
  158. 84 => [0.0, 3.0],
  159. 85 => [0.0, 2.9],
  160. 86 => [0.0, 2.8],
  161. 87 => [0.0, 2.7],
  162. 88 => [0.0, 2.6],
  163. 89 => [0.0, 2.5],
  164. 90 => [0.0, 2.4],
  165. 91 => [0.0, 2.3],
  166. 92 => [0.0, 2.2],
  167. 93 => [0.0, 2.1],
  168. 94 => [0.0, 2.0],
  169. 95 => [0.0, 1.9],
  170. 96 => [0.0, 1.8],
  171. 97 => [0.0, 1.7],
  172. 98 => [0.0, 1.6],
  173. 99 => [0.0, 1.5],
  174. 100 => [0.0, 1.4],
  175. );
  176. /* ********* START ********* */
  177. /* ********* ADD BASE SATURATION CALCULATION HERE ********* */
  178. // Calculating hydrogen and otherbases
  179. $ph = $ph_h2o; // $ph_h2o from above
  180. $aluminium = $al_mehlick3;
  181. // round the ph value to single decimal point
  182. $ph_lookup = round($ph, 2);
  183. if ($errorLog = "1") { error_log(print_r("\nph_lookup: " . $ph_lookup . "\nph: " . $ph, true ), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); }
  184. // lookup Hydrogen and Other Bases
  185. $hydrogen = $phrange[($ph_lookup * 10)][0];
  186. $otherbases = $phrange[($ph_lookup * 10)][1];
  187. $h_rec = round($hydrogen, 2); // recommended level added to DB
  188. $ob_rec = round($otherbases, 2); // recommended level added to DB
  189. if ($errorLog = "1") { error_log(print_r("\nHydrogen: " . $hydrogen . "\nOther Bases: " . $otherbases, true), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); }
  190. if ( $aluminium < 0 ) { $otherbases = 0; }
  191. $obresult = 0; // obresult == Other Bases Result
  192. $hresult = 0; // hresult == Hydrogen Result
  193. // IF ********************************************************************************
  194. if ( $otherbases > 0 ) {
  195. while ( (($obresult * 100) / ($cec + $obresult + $hresult) ) <= $otherbases ) {
  196. $obresult += 0.001;
  197. $tempNo = $obresult;
  198. $tempNo1 = $otherbases;
  199. $tempNo2 = $hydrogen;
  200. // CAUTION: storing value in Calc:E16
  201. $hresult = ($tempNo * $tempNo2) / $tempNo1;
  202. }
  203. $obresult -= 0.001;
  204. if ( $hresult != 0 ){
  205. $hresult -= 0.001;
  206. }
  207. } else {
  208. while( (($hresult * 100) / $tec) <= $hydrogen ) {
  209. $hresultl += 0.001;
  210. }
  211. $hresult -= 0.001;
  212. }
  213. if ($errorLog = "1") { error_log(print_r("\nhresult: " . $hresult . "\nobresult: " . $obresult, true), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); }
  214. // END If ********************************************************************************
  215. // Calculating Ca Mg K Na levels based on temp
  216. // *** I think that the tecTemp needs to be a sum of $tec and $hresult and $obresult ***
  217. // *** As far as I can see on the spreadsheet the TEC in CALC:B16 is "CEC + obresult + CALC:E16"
  218. $tecTemp = $cec + $obresult + $hresult;
  219. $cecTemp = $cec;
  220. $tec = round($tecTemp, 2);
  221. $cec = round($cec, 2);
  222. if ($errorLog = "1") { error_log(print_r("\ntecTemp: " . $tecTemp . "\ncec: " . $cec . "\ntec: " . $tec, true), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); }
  223. // CAUTION: for $tecTemp values below 1 and above 100000 this will not work
  224. if ( ( 1.0 < $tec ) && ( 3.0 >= $tec ) ) {
  225. $cabs = $CABS = 0;
  226. $cabsmax = $CABSMAX = 60.00;
  227. $mgbs = $MGBS = 0;
  228. $mgbsmax = $MGBSMAX = 20.00;
  229. $kbs = $KBS = 5.00;
  230. $kbsmax = $KBSMAX = 7.00;
  231. $nabs = $NABS = 0.50;
  232. $nabsmax = $NABSMAX = 1.50;
  233. }
  234. elseif ( ( 3.0 < $tec ) && ( 5.0 >= $tec ) ) {
  235. $cabs = $CABS = 0;
  236. $cabsmax = $CABSMAX = 62.00;
  237. $mgbs = $MGBS = 0;
  238. $mgbsmax = $MGBSMAX = 18.00;
  239. $kbs = $KBS = 5.00;
  240. $kbsmax = $KBSMAX = 7.00;
  241. $nabs = $NABS = 0.50;
  242. $nabsmax = $NABSMAX = 1.50;
  243. }
  244. elseif ( ( 5.0 < $tec ) && ( 7.0 >= $tec ) ) {
  245. $cabs = $CABS = 0;
  246. $cabsmax = $CABSMAX = 64.00;
  247. $mgbs = $MGBS = 0;
  248. $mgbsmax = $MGBSMAX = 16.00;
  249. $kbs = $KBS = 4.00;
  250. $kbsmax = $KBSMAX = 7.00;
  251. $nabs = $NABS = 0.50;
  252. $nabsmax = $NABSMAX = 1.50;
  253. }
  254. elseif ( ( 7.0 < $tec ) && ( 9.0 >= $tec ) ) {
  255. $cabs = $CABS = 0;
  256. $cabsmax = $CABSMAX = 65.00;
  257. $mgbs = $MGBS = 0;
  258. $mgbsmax = $MGBSMAX = 15.00;
  259. $kbs = $KBS = 4.00;
  260. $kbsmax = $KBSMAX = 7.00;
  261. $nabs = $NABS = 0.50;
  262. $nabsmax = $NABSMAX = 1.50;
  263. }
  264. elseif ( ( 9.0 < $tec ) && ( 11.0 >= $tec ) ) {
  265. $cabs = $CABS = 0;
  266. $cabsmax = $CABSMAX = 67.00;
  267. $mgbs = $MGBS = 0;
  268. $mgbsmax = $MGBSMAX = 13.00;
  269. $kbs = $KBS = 4.00;
  270. $kbsmax = $KBSMAX = 7.00;
  271. $nabs = $NABS = 0.50;
  272. $nabsmax = $NABSMAX = 1.50;
  273. }
  274. elseif ( ( 11.0 < $tec ) && ( 30.0 >= $tec ) ) {
  275. $cabs = $CABS = 0;
  276. $cabsmax = $CABSMAX = 68.00;
  277. $mgbs = $MGBS = 0;
  278. $mgbsmax = $MGBSMAX = 12.00;
  279. $kbs = $KBS = 4.00;
  280. $kbsmax = $KBSMAX = 7.00;
  281. $nabs = $NABS = 0.50;
  282. $nabsmax = $NABSMAX = 1.50;
  283. }
  284. elseif ( ( 30.0 < $tec ) && ( 10000.0 >= $tec ) ) {
  285. $cabs = $CABS = 0;
  286. $cabsmax = $CABSMAX = 70.00;
  287. $mgbs = $MGBS = 0;
  288. $mgbsmax = $MGBSMAX = 10.00;
  289. $kbs = $KBS = 3.00;
  290. $kbsmax = $KBSMAX = 6.00;
  291. $nabs = $NABS = 0.50;
  292. $nabsmax = $NABSMAX = 1.50;
  293. }
  294. // *** CALCULATED TEC % AND PPM MIN / MAX LEVELS ***
  295. $cabs_min = $cabs;
  296. $ca_ppm_min = ( $tec * $cabs_min * 2 );
  297. $cabs_max = $cabsmax;
  298. $ca_ppm_max = ( $tec * $cabs_max * 2);
  299. $mgbs_min = $mgbs;
  300. $mg_ppm_min = ( $tec * $mgbs_min * 1.2 );
  301. $mgbs_max = $mgbsmax;
  302. $mg_ppm_max = ( $tec * $mgbs_max * 1.2 );
  303. $kbs_min = $kbs;
  304. $k_ppm_min = ( $tec * $kbs_min * 3.9 );
  305. $kbs_max = $kbsmax;
  306. $k_ppm_max = ( $tec * $kbs_max * 3.9 );
  307. $nabs_min = $nabs;
  308. $na_ppm_min = ( $tec * $nabs_min * 2.3 );
  309. $nabs_max = $nabsmax;
  310. $na_ppm_max = ( $tec * $nabs_max * 2.3 );
  311. $albs_min = "0";
  312. $al_ppm_min = ( $tec * $albs_min * 0.9 );
  313. $albs_max = "0.5";
  314. $al_ppm_max = ( $tec * $albs_max * 0.9 );
  315. // *** CALCULATED TEC LEVELS ***
  316. $cabs_tec = ( $ca_mehlick3 / $tec ) * 100;
  317. $cabs_tec = round($cabs_tec, 2);
  318. $mgbs_tec = ( $mg_mehlick3 / $tec ) * 100;
  319. $mgbs_tec = round($mgbs_tec, 2);
  320. $kbs_tec = ( $k_mehlick3 / $tec ) * 100;
  321. $kbs_tec = round($kbs_tec, 2);
  322. $nabs_tec = ( $na_mehlick3 / $tec ) * 100;
  323. $nabs_tec = round($nabs_tec, 2);
  324. $albs_tec = ( $al_mehlick3 / $tec ) * 100;
  325. $albs_tec = round($albs_tec, 2);
  326. // *** CALCULATED PPM FROM MEQ ***
  327. $BS_ca_ppm = $ca_mehlick3 * 200;
  328. $BS_mg_ppm = $mg_mehlick3 * 120;
  329. $BS_k_ppm = $k_mehlick3 * 390;
  330. $BS_na_ppm = $na_mehlick3 * 230;
  331. $BS_al_ppm = $al_mehlick3 * 90;
  332. /* ********* ADD BASE SATURATION CALCULATION HERE ********* */
  333. /* ********* END ********* */
  334. // Check connection
  335. if (mysqli_connect_errno()){
  336. echo "Failed to connect to MySQL: " . mysqli_connect_error();
  337. }
  338. $sql = mysqli_query($con, "INSERT into `soil_records`
  339. (
  340. client_records_id,
  341. modx_user_id,
  342. date,
  343. email,
  344. client_name,
  345. site_address,
  346. state_postcode,
  347. analysis_type,
  348. lab_no,
  349. batch_no,
  350. sample_id,
  351. site_id,
  352. crop_type,
  353. soil_type,
  354. date_sampled,
  355. tec,
  356. cec,
  357. texture,
  358. gravel,
  359. colour,
  360. NO3_N,
  361. NH3_N,
  362. p_mehlick,
  363. p_bray2,
  364. p_morgan,
  365. k_morgan,
  366. ca_morgan,
  367. mg_morgan,
  368. na_morgan,
  369. ch_h2o,
  370. ocarbon,
  371. omatter,
  372. fe,
  373. ec,
  374. ph_cacl2,
  375. ph_h2o,
  376. paramag,
  377. s_morgan,
  378. b_cacl2,
  379. mn_dtpa,
  380. zn_dtpa,
  381. fe_dtpa,
  382. cu_dtpa,
  383. al,
  384. sl_cacl2,
  385. m_dtpa,
  386. co_dtpa,
  387. se,
  388. ca_mehlick3,
  389. BS_ca_ppm,
  390. mg_mehlick3,
  391. BS_mg_ppm,
  392. k_mehlick3,
  393. BS_k_ppm,
  394. na_mehlick3,
  395. BS_na_ppm,
  396. al_mehlick3,
  397. BS_al_ppm,
  398. BS_ca2,
  399. BS_mg2,
  400. BS_k,
  401. BS_na,
  402. BS_al3,
  403. BS_ob,
  404. BS_h,
  405. cabs_min,
  406. ca_ppm_min,
  407. cabs_max,
  408. ca_ppm_max,
  409. mgbs_min,
  410. mg_ppm_min,
  411. mgbs_max,
  412. mg_ppm_max,
  413. kbs_min,
  414. k_ppm_min,
  415. kbs_max,
  416. k_ppm_max,
  417. nabs_min,
  418. na_ppm_min,
  419. nabs_max,
  420. na_ppm_max,
  421. albs_min,
  422. al_ppm_min,
  423. albs_max,
  424. al_ppm_max,
  425. ob_rec,
  426. h_rec,
  427. ca_mg_ratio,
  428. rand
  429. ) VALUES (
  430. '{$client_id}',
  431. '{$modx_id}',
  432. '{$date}',
  433. '{$email}',
  434. '{$client_name}',
  435. '{$site_address}',
  436. '{$state_postcode}',
  437. '{$analysis_type}',
  438. '{$lab_no}',
  439. '{$batch_no}',
  440. '{$sample_id}',
  441. '{$site_id}',
  442. '{$crop_type}',
  443. '{$soil_type}',
  444. '{$date_sampled}',
  445. '{$tec}',
  446. '{$cec}',
  447. IF('{$texture}'='',NULL,'{$texture}'),
  448. IF('{$gravel}'='',NULL,'{$gravel}'),
  449. IF('{$colour}'='',NULL,'{$colour}'),
  450. '{$NO3_N}',
  451. '{$NH3_N}',
  452. '{$p_mehlick}',
  453. '{$p_bray2}',
  454. '{$p_morgan}',
  455. '{$k_morgan}',
  456. '{$ca_morgan}',
  457. '{$mg_morgan}',
  458. '{$na_morgan}',
  459. '{$ch_h2o}',
  460. '{$ocarbon}',
  461. '{$omatter}',
  462. '{$fe}',
  463. '{$ec}',
  464. '{$ph_cacl2}',
  465. '{$ph_h2o}',
  466. IF('{$paramag}'='',NULL,'{$paramag}'),
  467. '{$s_morgan}',
  468. '{$b_cacl2}',
  469. '{$mn_dtpa}',
  470. '{$zn_dtpa}',
  471. '{$fe_dtpa}',
  472. '{$cu_dtpa}',
  473. '{$al}',
  474. '{$sl_cacl2}',
  475. '{$m_dtpa}',
  476. '{$co_dtpa}',
  477. '{$se}',
  478. '{$ca_mehlick3}',
  479. '{$BS_ca_ppm}',
  480. '{$mg_mehlick3}',
  481. '{$BS_mg_ppm}',
  482. '{$k_mehlick3}',
  483. '{$BS_k_ppm}',
  484. '{$na_mehlick3}',
  485. '{$BS_na_ppm}',
  486. '{$al_mehlick3}',
  487. '{$BS_al_ppm}',
  488. '{$cabs_tec}',
  489. '{$mgbs_tec}',
  490. '{$kbs_tec}',
  491. '{$nabs_tec}',
  492. '{$aluminium}',
  493. '{$otherbases}',
  494. '{$hydrogen}',
  495. '{$cabs_min}',
  496. '{$ca_ppm_min}',
  497. '{$cabs_max}',
  498. '{$ca_ppm_max}',
  499. '{$mgbs_min}',
  500. '{$mg_ppm_min}',
  501. '{$mgbs_max}',
  502. '{$mg_ppm_max}',
  503. '{$kbs_min}',
  504. '{$k_ppm_min}',
  505. '{$kbs_max}',
  506. '{$k_ppm_max}',
  507. '{$nabs_min}',
  508. '{$na_ppm_min}',
  509. '{$nabs_max}',
  510. '{$na_ppm_max}',
  511. '{$albs_min}',
  512. '{$al_ppm_min}',
  513. '{$albs_max}',
  514. '{$al_ppm_max}',
  515. '{$ob_rec}',
  516. '{$h_rec}',
  517. '{$ca_mgRatio}',
  518. '{$rand}'
  519. )" );
  520. $insert_id = mysqli_insert_id($con);
  521. if ($sql === TRUE) {
  522. sleep(10);
  523. // forward to results page if successfully inserts to database [[~32]]
  524. echo "<script>location.href = '[[~41]]?rand=" . $rand . "&cid=" . $sample_id . "&rid=" . $insert_id . "&stid=" .$crop_type . "';</script>";
  525. } else {
  526. die(mysqli_error($con)); // TODO: better error handling
  527. //echo "User Profile incorrect";
  528. }
  529. }
  530. <div id="loader-gif" style="z-index:10000;" >[[$plantPOPUP]]</div>
  531. <script>
  532. $(document).ready(function() {
  533. $("#start-loader").click(function() {
  534. $("#loader-gif").show();
  535. setTimeout(function() {
  536. $("#loader-gif").hide();
  537. }, 5000);
  538. });
  539. });
  540. </script>