У меня есть веб-приложение, которое включает в себя редактор вопросника. Вопросов много. у каждого может быть много ответов; и каждый вопрос имеет два набора переключателей для настройки различных параметров вопроса.Drag 'n Drop Destroys Идентификационная схема нумерации?
Я использую следующий стиль идентификаторов:
id="Q-$questionNumber"
id="Q-$questionNumber-A-$answerNumber"
... где '$ questionNumber' и '$ answerNumber' заменяются соответствующими номерами.
Идентификатор схемы нумерации имеет две функции:
- Когда элемент щелкнул мой Javascript может исследовать идентификационный номер, чтобы узнать, какой вопрос/ответ он принадлежит.
- Элементы ввода имеют имена, которые следуют этой же схеме нумерации. Когда форма отправлена, мой PHP-код может определить, с каким номером/номером номера ответа связано связанное с ним значение, путем изучения имени.
Естественно, когда я перетаскиваю вопрос, все эти идентификаторы и имена необходимо перенумеровать. Я написал javascript/jQuery, который успешно все решает и работает правильно. Но он чувствует себя глупым.
Кажется, что я мог удалить схему нумерации из всех идентификаторов и просто выяснить, какой номер номера/ответа на вопрос находится, исследуя его размещение в DOM с помощью jQuery. Но, похоже, мне все равно нужно будет использовать схему нумерации для имен входных элементов, чтобы мой PHP-код на сервере мог определить, какой номер номера/ответа номера принадлежит различным представленным элементам формы.
Есть ли лучший способ?
ОБНОВЛЕНИЕ по запросу Bankzilla. Вот несколько примеров HTML. Это один вопрос. В каждом документе может быть много вопросов, каждый из которых может иметь много ответов.
<div id="Q-1" class="QuestionGroup ui-draggable">
<br>
<h2 id="QuestionText-Q-1">
Question #1
<input type="text" name="questionText-Q-1" value="" id="questionText-Q-1" class="questionText" maxlength="256" size="70">
</h2>
<div class="containerForAnswers">
<p class="answerPar">
<span class="answerLabel answerLabelinEditView">#1:</span>
<input type="text" name="Q-1-A-1" value="" id="Q-1-A-1" class="answer answer-Q-1" maxlength="256" size="70">
</p>
<p class="answerPar">
<span class="answerLabel answerLabelinEditView">#2:</span>
<input type="text" name="Q-1-A-2" value="" id="Q-1-A-2" class="answer answer-Q-1" maxlength="256" size="70">
</p>
<p class="answerPar">
<span class="answerLabel answerLabelinEditView">#3:</span>
<input type="text" name="Q-1-A-3" value="" id="Q-1-A-3" class="answer answer-Q-1" maxlength="256" size="70">
</p>
</div>
</div>
Покажите нам, что у вас есть, поэтому мы можем предложить лучший способ. – Bankzilla