Jquery,跟踪变量号

时间:2014-01-09 19:14:37

标签: jquery loops

我目前正在建立一个用户可以提交问题的网站。

制作问题架构时,用户可以根据需要添加任意数量的问题。我使用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);

        }
    });
});

2 个答案:

答案 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;