我目前正在建立一个用户可以提交问题的网站。
制作问题架构时,用户可以根据需要添加任意数量的问题。我使用Jquery
此功能
$('body').on('click', '.add_question', function() {
var result = $(this).attr('data-result');
$.ajax({
type: "POST",
dataType: "html",
url: (my_ajax_script.ajaxurl),
data: ({action: 'add_question_1'}),
success: function(msg) {
$(result).append(msg);
}
});
});
每个问题都有一个id,从1开始,然后是2,依此类推。这个html是
每当用户按下“添加问题”按钮时,就会添加到表格中。
function add_question_1() {
?>
<tr>
<td>
<textarea id="<?php echo $_SESSION['d'] ?>"></textarea>
</td>
</tr>
<?php
$_SESSION['d'] ++;
}
现在,当用户将这些问题提交给数据库时,我从
获取值没有问题id,就像这样:
var first_question = $("#1").val();
我的问题是:
问题的数量各不相同,可能有1个或100个,我无法弄清楚如何跟踪
提交多少个问题!
我将欣赏任何答案,引导我朝着正确的方向前进。我知道这不是太多的信息 ,但我希望有人能理解这一点,并且可能处于相同的位置。
THX!
最终解决方案:
$('body').on('click', '.save_questionary', function() {
var length = $('table textarea').length;
var obj = $();
var arr = $.makeArray(obj);
for (i = 1; i <= length; i++) {
arr.push($("#" + i).val());
}
var title = $("#title").val();
var answer_required = $("#answer_required").val();
var subject = $("#subject").val();
var description = $("#description").val();
$.ajax({
type: "POST",
dataType: "html",
url: (my_ajax_script.ajaxurl),
data: ({action: 'add_question_2', arr: arr, title:title, subject:subject, answer_required:answer_required, description:description}),
success: function(msg) {
$(result).append(msg);
}
});
});
答案 0 :(得分:3)
由于您可以添加新问题,因此可以通过
计算表单中textarea子元素的数量var count = $("#form textarea").length;
然后将for循环形式1放入计数
var question = $("#"+i).val(); // where i is the loop counter
答案 1 :(得分:0)
我认为你需要在ASP.NET中像这样转换Session变量: SESSION ['d'] = Convert.ToInt32(SESSION ['d'])+ 1;