基本上,我需要从一堆 HTML 文本输入中构造一个大字符串。
首先,这些文本输入是由一个按钮动态创建的,因此,可以有用户想要的任意数量的输入。
以下是每个动态创建的文本输入的格式:
[question] [incorrect-answer1]
[incorrect-answer2]
[incorrect-answer3]
[correct-answer]
Remove
[] 包围的每个项目都是一个文本输入,“删除”是一个删除当前问题的按钮。
这是我创建每个动态问题的整个 jQuery 函数:
function dynamicForm () {
//set a counter
var i = $('.dynamic-input#form-step2').length + 1;
//alert(i);
//add input
$('a#add').click(function () {
$('<table><tr><td><p><span class="left"><input type="text" class="dynamic-input" name="items[]" id="' + i + '" placeholder="Question" /></span>' +
'<span class="right"><input type="text" class="dynamic-input" name="items[]" id="' + i + '" placeholder="Distraction 1" /><br /><input type="text" class="dynamic-input" name="items[]" id="' + i + '" placeholder="Distraction 2" /><br /><input type="text" class="dynamic-input" name="items[]" id="' + i + '" placeholder="Distraction 3" /><br /><input type="text" class="dynamic-input" name="items[]" id="' + i + '" placeholder="Correct Answer" /><br /><a href="#">Remove</a></span></p></td></tr></table>').fadeIn("slow").appendTo('#extender');
i++;
$("a:contains('Remove')").click(function () {
$(this).parent().parent().remove();
});
return false;
});
//fadeout selected item and remove
$("#form-step2.dynamic-input").on('click', 'a', function () {
$(this).parent().fadeOut(300, function () {
$(this).empty();
return false;
});
});
}
这是创建每个问题的简单小按钮:
<a id="add" href="#">Add Question</a>
我需要达到的目标:
按下按钮后,我需要以某种方式收集所有问题元素,并将它们保存到字符串中。这是每个问题必须保存的格式:
question1,incorrect-answer1,incorrect-answer2,incorrect-answer3,correct-answer
question1,incorrect-answer1,incorrect-answer2,incorrect-answer3,correct-answer
question2,incorrect-answer1,incorrect-answer2,incorrect-answer3,correct-answer
如上所示,共有 3 个问题。每个问题必须用换行符分隔,即'\n'。顺序必须是问题,3个错误答案,然后是正确答案;全部用逗号分隔。
当然,我不是要求任何人为我做这件事。我只需要一些指导和支持,因为我还是 PHP 和 jQuery 的新手(学习 PHP 8 周,jQuery 2 周)。我的大部分代码都是由 Stack Overflow 和其他在线资源中已有的代码构建的。
非常感谢所有帮助