Member 14722768 Ответов: 1

Сохранение клонированного div в SQL


Я новичок в веб-разработке и работаю с С# для серверной части и HTML/CSS/JS/JQuery для клиентской стороны. У меня есть форма с несколькими полями, которая при отправке сохраняет данные в базу данных SQL. Я уже использовал asp.net элементы управления (текстовые поля, флажки и т. д.), Потому что к ним легче получить доступ на стороне сервера, используя их идентификаторы.

Например:

строка myEmail1 = txtBxEmail1.Text; (где txtBxEmail-идентификатор текстового поля)

Я сохраняю строку myEmail в предполагаемый столбец в моей БД с помощью запроса типа:

string query = "вставить в My_Table(Email, Phone....) значения('"" + myEmail + "','" + myPhone + "','" +......"')";

Теперь мне нужно клонировать огромный кусок моей формы, чтобы позволить пользователю добавлять информацию для другой сущности. Я легко смог клонировать часть формы, используя метод клонирования jQuery. Однако проблема заключается в сохранении этих значений в БД.

Если бы кто-нибудь мог помочь мне понять как сохранить эти клонированные значения в SQL Любая форма рекомендации/направления/фрагмента будет высоко оценена.

Что я уже пробовал:

Since the cloned elements do not have ids initially, I tried to assign incremental ids for them, like txtBxEmail2, txtBxEmail3..... which was the simplest way to go about it, but they do not exist before the program runs so I cannot assign their value into a string like above.

1 Ответов

Рейтинг:
0

MadMyche

Добро пожаловать в мир веб-разработки; надеюсь, вам это понравится.

И давайте приступим наилучшие виды практики сразу же: этот код уязвим для SQL-инъекций. Всякий раз, когда вы собираетесь взять информацию о пользователе и поместить ее в базу данных, которую вы должны использовать Параметры; и не соединять воедино SQL-команду, смешанную с пользовательским вводом.

Это уязвимая линия

string query = "insert into My_Table(Email, Phone....) values('"" + myEmail + "','" + myPhone + "','" +......"')";
Самый простой способ избежать этой проблемы-добавить переменные в коллекцию параметров объектов SqlCommand:
string query = "INSERT My_Table(Email, Phone....) VALUES (@Email, @Phone,....)";

SqlCommand cmd = new SqlCommand(query, connection);
cmd.Parameters.AddWithValue("@Email", myEmail);
cmd.Parameters.AddWithValue("@Phone", myPhone);
// continue for all your dots (....)
Теперь о проблеме, с которой вы пришли сюда... Я бы рекомендовал обновить ваш вопрос с помощью Improve Question виджет и добавьте соответствующие фрагменты кода; в противном случае это будет много догадок для сообщества.

То, что вы сами можете сделать, - это устранить неполадки и отладить. Запустите программу локально в режиме отладки и выполните действие POST, которое у вас есть; это поможет определить, как называются клонированные элементы, чтобы вы могли получить значения.

Еще один инструмент для использования-это инструменты разработчика браузера. Вы можете "проверить" любой элемент в DOM, чтобы получить тип элемента, а также его атрибут. В этих инструментах также есть вкладка сеть, которая позволит вам видеть содержимое сообщения, отправляемого при отправке формы.