【问题标题】:Get values from dynamic list and return them as a string从动态列表中获取值并将它们作为字符串返回
【发布时间】:2012-05-24 23:48:16
【问题描述】:

我正在进行一个项目,用户将选择一个文档并将其放入一个动态且可排序的列表中。列表项将具有特定文档 ID 的值。排列好列表后,用户将单击创建列表,我想使用 Ajax 和经典 ASP(在此过程中需要发生的几个查询来获取新的字符串格式)来获取的值列出项目并将它们放入数组中。

这是我目前的清单:

<ul class="main_doc_list">
  <li><b>Editor's Blog</b>
  <ul class="doc_list">
      <li value="111111">Doc Title</li>
   </ul>
   </li>
   <li><b>Blog Roll</b>
    <ul class="doc_list">
      <li value="222222">Doc Title</li>
      <li value="333333">Doc Title 2</li>
      <li value="444444">Doc Title 2</li>
    </ul>
    </li>
   </ul>

我目前在 JQuery 中有这个来触发 Ajax 事件。

$("#create").click(function() {
    $.ajax(
            {
            type: "GET",
            url: "newslettercreate_action.asp",
            success: function(result) {
                var newsletter_string = $(result);
                $("#scratch").val(newsletter_string);
            }
        });

    }) 

只是不确定一旦在我的 ASP 操作文件中如何获取我需要开始构建 newsleter_string 的函数的值。任何帮助将不胜感激。

【问题讨论】:

  • 我不明白你有什么问题。你的问题到底是什么?预期的结果是什么?
  • 我不知道如何使用 ASP 从我的列表项中获取值。预期结果应该是 111111,222222,333333,444444

标签: jquery ajax asp-classic


【解决方案1】:

正如 Porco 所指出的,您可以在发布之前使用 jQuery 本身来获取它,您只需像 Porco 所说的那样循环遍历每个元素并连接值以发布它:

$("#create").click(function() {
    // get some data 
    var strDocIDs = "";
    $('.main_doc_list').find('li[value]').each(function() {
        strDocIDs += ", " + $(this).attr('value');
    });

    if (strDocIDs != "") alert(strDocIDs.substring(2)); // substring here rips off the first comma
})

要发布数据,按照 Porco 向您展示的操作,您可以在 ASP 上将结果作为请求变量获取:

strDocIDs = Request("strDocIDs")

【讨论】:

  • var strDocIDs = $.map($('.main_doc_list').find('li[value]'), function(li) { return $(li).attr("value") })。加入(”,”);如果你愿意
  • 一个很好的例子,但对于初学者来说并不那么容易理解,所以我选择了each方法,看起来更清楚。
【解决方案2】:

只需要传入一些数据:

$("#create").click(function() {

    // get some data
    var strDocIDs = $('.main_doc_list').find('li').first().attr('value');

    $.ajax(
            {
            type: "GET",
            url: "newslettercreate_action.asp",
            data: { "'strDocIDs':'" + strDocIDs + "'}",
            success: function(result) {
                var newsletter_string = $(result);
                $("#scratch").val(newsletter_string);
            }
    });

}) 

【讨论】:

  • 我只抓取第一个DocID,但我希望你能写一个简单的循环来抓取它们。
  • 谢谢。编写循环不会成为问题。现在,在我的 ASP 操作页面中,我将如何引用 strDocID?
  • 它们将作为请求参数添加(因此将它们从请求对象中拉出)
  • 此代码将仅发布第一个 li 值。您将需要遍历元素以获取所有值。请参阅我的答案以供参考。
  • 我仍然无法将值传递到我的 ASP 文档中。提供的数据线实际上打破了页面。我玩过它,但我的 ASP 文档只收到了表单中的所有字段名称,而不是列表值。
猜你喜欢
  • 2020-10-09
  • 2014-04-15
  • 2022-01-21
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多