【问题标题】:Auto-populating Select Field via jQuery's Ajax通过 jQuery 的 Ajax 自动填充选择字段
【发布时间】:2012-06-11 17:39:20
【问题描述】:

我正在使用经典 ASP 进行编码,并使用 ADO 访问我的数据库。我有两个选择字段,即:

<select name="NBSCourse" class="NBSCourse"></select>
<select name="IndexNo" class="IndexNo"></select>

对于“NBSCourse”,选项字段通过 SQL 请求填充,列出所有可用课程代码的不同结果。我想根据“NBSCourse”的选定值填充下一个选择字段“IndexNo”。

目前,我尝试了以下方法:将 nbsCourseid 的选定字段传递给 ASP 文件“indexnodrop”

$("select.NBSCourse").change(function () {
var nbsCourseid;
nbsCourseid = $("select.NBSCourse").val();

 $.ajax({url:"indexnodropdown.asp?q="+nbsCourseid,success:function(result) { 

    $("select.IndexNo").html(result);

}})

 })

在 indexnodrop.asp 中,我已将脚本执行到数据库中。

dim selectedcourseID
selectedcourseID = Request.querystring("q")

oCmd.CommandText = "SELECT DISTINCT IndexNo FROM NBSCourse WHERE CourseId='" &  selectedcourseID & "'"
Set oRS = oCmd.Execute() 

If Not oRS.EOF Then 
response.write("<option value='" & oRS("IndexNo") & "'>" & oRS("IndexNo") & "</option>")
End If

这里有什么我遗漏的吗?提前感谢您的帮助!

【问题讨论】:

  • 您的 sql 受到此处所示的注入攻击。

标签: jquery asp-classic


【解决方案1】:
$("select[name=NBSCourse]").change(function () {
  var nbsCourseid;
  nbsCourseid = this.value; // or $(this).value();
   $.ajax({url:"indexnodropdown.asp?q="+nbsCourseid,success:function(result) { 
     $("select[name=IndexNo]").html(result);
  }};
});

你不能用

select.NBSCourse 因为. 表示法用于访问class,但您使用了name 属性。

根据评论

如果你使用class,而不是name,那么你可以使用

$("select.NBSCourse").change(function () {
  var nbsCourseid;
  nbsCourseid = this.value; // or $(this).value();
   $.ajax({url:"indexnodropdown.asp?q="+nbsCourseid,success:function(result) { 
     $("select.IndexNo").html(result);
  }};
})

【讨论】:

  • 不完全。我认为这是 ASP 脚本的问题。
  • @kosherjellyfish 如果这不能解决您的问题,请提供有关您的故障发生位置的更多详细信息 - 更改事件是否触发?值是否到达后端?值是否返回但未放在选项列表中?等等
  • 我成功了!问题出在我到数据库的连接字符串上。
猜你喜欢
  • 1970-01-01
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多