как параметр полученный из веб формы использовать как имя переменной

dion
Offline
Зарегистрирован: 23.03.2017

Привет Всем.

Есть веб сервер на nodemcu

на нем есть форма ввода часть кода :

input id="DMinTempId"  value="{{DMinTemp}}"  pattern="[0-9]{1,2}"

и сабмит 

input type="submit" id="" name="7" value="Сохранить" onclick="set(this);"

на онклик вызывается фунция выполняющая вормирование запроса на nodemcu: 

 var elem = document.getElementById(submit.id+"Id").value;
 server = "/set?button="+submit.id+"&data="+elem+"&eeprom="+submit.name;
и результатом выполнени яесть строка в формате :
/set?button=DMinTemp&data=32&eeprom=7;
 
на nodemcu мы слушаем запрос и выполняем действия :
 
  String button = HTTP.arg("button");
  byte data =  HTTP.arg("data").toInt();
  byte eeprom =  HTTP.arg("eeprom").toInt();
 
помощь нужна в том чтобы суметь использовать значнеи строковой переменной button="DMinTemp" как имя глобальной переменной в теле скетча DMinTemp.
 
подскажите, есть ли механизмы позволяющии это сделать ? 
Logik
Offline
Зарегистрирован: 05.08.2014

обявляете 

A{}

Присваиваете так

A[button]=data

При упоминании в коде  A["DMinTemp"] оно будет 32.

Но это очень ресурсоемкое.

Но вобще все делаете плохо.  Вы я так вижу вебдизайнер?! Не пишите код с такими подходами, толку не будет. Ресурсы ESP8266 сильно ограничены. Тут вам не сайть монструозный лепить, сбежать с оплатой под матюки пользователей не получится.

dion
Offline
Зарегистрирован: 23.03.2017

Спасибо за вариант решения 

првоерю расскажу что выйдет 

я не разработчик мой профиль - руководить.  

проект не коммерческий, хочу улучшить желищный вопрос своему питомцу в терариуме :) 

автоматизировав климат и обеспечить визуализацию состояний датчиков и приборов. 

 

 

dion
Offline
Зарегистрирован: 23.03.2017

не могу самостоятельно применить вашу мысль, прошу еще пояснений на моем пример примере 

int var{};

String button = HTTP.arg("button");

int data =  HTTP.arg("data").toInt();

var[button] = data;

компилятор говрит что мы не правы 

error: no match for 'operator[]' (operand types are 'int' and 'String')
   var[button] = data;
      ^
exit status 1
no match for 'operator[]' (operand types are 'int' and 'String')
 

 

Logik
Offline
Зарегистрирован: 05.08.2014

а вы вобще на чем пишете))) Мой совет для Lun который в nodemcu. А Ваш текст на сишный похож.

//хочу улучшить желищный вопрос своему питомцу в терариуме 

Святое дело.

//я не разработчик ..

Так не увлеуайтесь лишними абстракциями. Заведите просто нужную переменную с удобным фиксированім именем, нужно DMinTemp, так и пишите int DMinTemp; Будет их десяток или два - столько заведете. Передавать имя с формы плохая идея. Это возможно (нужен будет еще список для хранения имен и как-то связать их с значениями), но сложно и медлено работает.

dion
Offline
Зарегистрирован: 23.03.2017

 я черчез Arduino IDE делаю

в простом виде я могу сделать это не составляет труда, хотел красиво компактно у меня около 25 переменных прийдется плодить однотипный код в большом кол-ве

думал как наду решение черчез обьявления указателя на переменную

буду искать еще вараинты время еще есть хочу лучше чем куча однотипного кода