asp,从函数(Function)中获取值的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp,从函数(Function)中获取值的问题。相关的知识,希望对你有一定的参考价值。

我写了一个Function,功能是输出access数据库中的文章标题,另外我在index.asp中调用这个函数,输出正常。问题来了:我想让index页输出文章标题的时候同时输出一个值“Art_Number”,这个值的意思是文章标题的数量,现在我能做到的是在Function中输出这个值,但是不能再index中将这个值赋给“Art_Number”。。。请指教,谢谢
可能我表达不是很清楚,可以加我球球:1219792084,非常感谢

这是属于调用function中的局部变量!!!

<%
Function tit(a,b)
if b=1 then
tit=a
elseif b=2 then
tit=len(a)
endif
End Function
%>
<%=tit(biaoti,1)%>输出文章标题,<%=tit(biaoti,2)%>输出标题数量,大致思路是这样,你根据你自己的情况去改改!

什么局部变量啊?你不要自己把问题想得太复杂,不管是函数还是子程序,同样可以使用if判断语句等方式,这个除了多一个函数表达式,和普通的代码没有什么两样;
我这里这是给函数多提供了一个参数,以便使用if语句来判断该函数返回什么值或是什么类型,
参考技术A <%
function acc(number)
acc=number
end function
%>
<%=acc(123)%>
试看看看

从函数中获取返回值的麻烦

下面是我的项目的一小部分,我让这些功能一对一工作,但当我修改其他功能到我的程序时,下面的代码停止工作。

我要做的是从用户(例如Jan)获取对象数组中的一个标签daysInMonth,然后从该返回对象的值以及该对象在数组中的索引。

我的问题是当我在DrawCal()内调用getMonthNum()来获取returnMonDayNum的值时返回0,即使在getMonthNum函数内它返回31,如果你使用Jan作为例子。

var daysInMonth = [{
    label: 'Jan',
    value: 31
  }, {
    label: 'Feb',
    value: 28
  }, {
    label: 'Marc',
    value: 31
  }, {
    label: 'Apr',
    value: 30
  },
  {
    label: 'May',
    value: 31
  }, {
    label: 'June',
    value: 30
  }, {
    label: 'July',
    value: 31
  }, {
    label: 'Aug',
    value: 31
  },
  {
    label: 'Sept',
    value: 30
  }, {
    label: 'Oct',
    value: 31
  }, {
    label: 'Nov',
    value: 30
  }, {
    label: 'Dec',
    value: 31
  }
]


function getMonthNum() {

  var monInput = document.getElementById("month").value;

  for (var i = 0; i <= 11; i++) {
    if (daysInMonth[i].label == monInput) {
      var returnMonDayNum = daysInMonth[i].value;
      var returnMonNum = i;
      console.log(monInput);
      console.log(returnMonDayNum);
      console.log(i);
      return returnMonDayNum, returnMonNum;
    }
  }
}


function DrawCal() {

  var returnMonDayNum = getMonthNum(returnMonDayNum);
  console.log(returnMonDayNum);
}
<form action="#" onsubmit="DrawCal();">
  <label>Month: <input type="text" name="Enter Month" id="month" required></label>
  <br>
  <br>
  <input type="submit" value="MakeCal">
</form>
答案

你试图从getMonthNum返回两件事。如果您确实想要返回索引和天数,则应将它们放在数组中。否则你只会得到列表中的最后一个。

然后,您可以在阵列中引用所需的项目。

作为旁注,您可能会发现像find()findIndex()这样的数组函数比for循环更好一些。 (我还添加了stopDefault(),只是为了防止表单刷新,结果保留在控制台中 - 这可能不是你想要的实际代码)。

var daysInMonth = [{label: 'Jan',value: 31}, {label: 'Feb',value: 28}, {label: 'Marc',value: 31}, {label: 'Apr',value: 30},{label: 'May',value: 31}, {label: 'June',value: 30}, {label: 'July',value: 31}, {label: 'Aug',value: 31},{label: 'Sept',value: 30}, {label: 'Oct',value: 31}, {label: 'Nov',value: 30}, {label: 'Dec',value: 31}]

function getMonthNum() {

  var monInput = document.getElementById("month").value;

  for (var i = 0; i <= 11; i++) {
    if (daysInMonth[i].label == monInput) {
      var returnMonDayNum = daysInMonth[i].value;
      var returnMonNum = i;
      console.log("input:", monInput);
      console.log("days:",returnMonDayNum);
      console.log("i:",i);
      return [returnMonDayNum, returnMonNum];
    }
  }
}


function DrawCal(e) {
  e.preventDefault()
  var result = getMonthNum();
  // result is an array: [returnMonDayNum, returnMonNum]
  console.log("days:", result[0]);
}
<form action="#" onsubmit="DrawCal(event);">
  <label>Month: <input type="text" name="Enter Month" id="month" required></label>
  <br>
  <br>
  <input type="submit" value="MakeCal">
</form>
另一答案

var daysInMonth = [{
    label: 'Jan',
    value: 31
  }, {
    label: 'Feb',
    value: 28
  }, {
    label: 'Marc',
    value: 31
  }, {
    label: 'Apr',
    value: 30
  },
  {
    label: 'May',
    value: 31
  }, {
    label: 'June',
    value: 30
  }, {
    label: 'July',
    value: 31
  }, {
    label: 'Aug',
    value: 31
  },
  {
    label: 'Sept',
    value: 30
  }, {
    label: 'Oct',
    value: 31
  }, {
    label: 'Nov',
    value: 30
  }, {
    label: 'Dec',
    value: 31
  }
]


function getMonthNum() {

  var monInput = document.getElementById("month").value;

  var returnMonDayNum
  var returnMonNum

  for (var i = 0; i <= 11; i++) {
    if (daysInMonth[i].label === monInput) {
      returnMonDayNum = daysInMonth[i].value;
      returnMonNum = i;
    }
  }
  return `Month: ${returnMonNum}. Days in ${daysInMonth[returnMonNum].label}: ${returnMonDayNum}`
}


function DrawCal() {

  console.log(getMonthNum());
}

document.querySelector('.submit').addEventListener('click', DrawCal)
<label>Month: <input type="text" name="Enter Month" id="month" required></label>

<button class="submit" value="MakeCal">Submit</button>

以上是关于asp,从函数(Function)中获取值的问题。的主要内容,如果未能解决你的问题,请参考以下文章

asp function 传递两个以上参数报错的问题

asp中sub与function的区别?

ASP.Net Core:如何获取无效 ModelState 值的键?

如何在 Asp.net MVC C# 中使用 Linq 从多个表中选择具有最大计数值的记录

asp中sub与function的区别?

获取asp.net MVC中下拉列表和文本框值的值