jQuery除非刷新,否则不显示实时数据

jquery not showing live data unless refresh

本文关键字:显示 实时 数据 刷新 jQuery      更新时间:2023-09-26

我正在尝试计算在其中选择了特定项目的下拉列表的数量。我在下面有我的代码,但它的工作原理是这样的:

在下拉列表中选择选项,按刷新页面,下拉列表中的选定项目将保留在那里,脚本将读取每个项目的选择次数。

页面上列出了下拉框,其中包含问题。 大约有 100 个下拉列表。 每个下拉列表都有相同的选项。

这是一个重复的代码,它列出了页面右侧的所有下拉选项,并显示每个选项在其旁边使用的次数。 它有效,只是不是动态的。我希望它在选择项目时立即工作,而无需进行选择然后刷新。

<%
 mySQL="SELECT * FROM admins WHERE area="&parea&" AND type>2"
 call getFromDatabase(mySQL, rstemp4, "addscheduleform5.asp") 
do while Not rstemp4.EOF 
pempidw=rstemp4("idadmin")
pempname1=rstemp4("firstname")
%>
 <%=pempname%>=
<script type="text/javascript">

var scheduled = $("select").filter(function() {
return $(this).val() == "<%=pempidw%>";
});
document.write(scheduled.length);

   </script>  

<%rstemp4.movenext
  loop%>

例:

例如,如果您有 5 个下拉列表。 所以如果你选择

X, A

, B, X, A

在下拉列表中,代码显示为

X=2

A=2 B=1

现在它可以工作了,如果您进行下拉选择并刷新页面,则下拉选择保持不变,并且代码会读取每个选择的次数。

现在,如果您将第一个选项从

X 到 A,

然后代码仍然显示:

X=2

A=2 B=1

除非您刷新页面,否则您会看到:

X=1

A=3 B=1。

对于那些不了解asp的人来说,这个javascript函数与我的网站asp无关。 "<%=pempidw%>"只是在加载的页面上显示一个数字,引用选择值。

请参阅下面的加载脚本将显示的内容。仅供参考"<%=pempidw%>"的含义

<option value="2">2</option>
<script type="text/javascript">
var scheduled = $("select").filter(function() {
return $(this).val() == "2";
 });
 document.write(scheduled.length);
</script>  

鉴于document.write确实不是一个好方法,我将(为了示例)在页面上放置一个<span id="result"></span>,我们可以[重新]引用输出。

话虽如此,测试代码应该包装在一个函数中,以便我们可以重用它。目前,它仅在首次访问页面时执行。为了纠正这一点,我们还将在更改任何下拉列表时执行我们的新函数。

function getSelectedValues(){
  var matches = $('select').filter(function(){
    return $(this).val() == '<%=pempidw%>';
  }).length;
  // here's where we just update that new <span>
  $('span#result').text(matches);
}
// call it on initial page visit
getSelectedValues();
// and here we bind to the change event for the selects
// and re-call our above function.
$('select').on('change', getSelectedValues);