Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从函数中提取javascript变量_Javascript_Arrays_Function - Fatal编程技术网

从函数中提取javascript变量

从函数中提取javascript变量,javascript,arrays,function,Javascript,Arrays,Function,这是我的第一篇文章。希望我遵守了所有的规则。 我是一名JS初学者,我一直在看Newboston.com和w3schools上的教程,以及Youtube上的其他一些教程,但找不到我问题的答案。 我有一个表单,它使用JS动态添加输入行,并且运行良好。然而,最后一部分我就是无法工作。它是用来整理用户输入的所有数据的位。 这就是我到目前为止所做的: //get all the row data function getData(TechRiskTable){ try { var

这是我的第一篇文章。希望我遵守了所有的规则。 我是一名JS初学者,我一直在看Newboston.com和w3schools上的教程,以及Youtube上的其他一些教程,但找不到我问题的答案。 我有一个表单,它使用JS动态添加输入行,并且运行良好。然而,最后一部分我就是无法工作。它是用来整理用户输入的所有数据的位。 这就是我到目前为止所做的:

//get all the row data
function getData(TechRiskTable){

    try {
       var table = document.getElementById(TechRiskTable);
       var rowCount = table.rows.length;
       var jsonArray = new Array();
       for(var index=0; index < rowCount; index++) {
          var mapObj = {};
          var row = table.rows[index];
          var name1 = row.cells[0].childNodes[0];
          var name2 = row.cells[1].childNodes[0];
          var name3 = row.cells[2].childNodes[0];
          var name4 = row.cells[3].childNodes[0];
          var name5 = row.cells[4].childNodes[0];

          mapObj['name1'] = name1.value;
          mapObj['name2'] = name2.value;
          mapObj['name3'] = name3.value;
          mapObj['name4'] = name4.value;
          mapObj['name5'] = name5.value;

         // document.write("Value in jsonArray " + name1.value + "<br />");
      }
    }catch(e) {
       alert(e);
    }
}
//获取所有行数据
函数getData(TechRiskTable){
试一试{
var table=document.getElementById(TechRiskTable);
var rowCount=table.rows.length;
var jsonArray=新数组();
对于(变量索引=0;索引);
}
}捕获(e){
警报(e);
}
}
好的,我在一个经典的ASP页面上运行它,“onclick”可以做到:

response.write input type=submit onclick='getData(TechRiskTable);' value='Send to Reviewer'><input type=reset value='Start Again'>
response.write输入类型=提交onclick='getData(TechRiskTable);'value='Send to Reviewer'>
我的问题是:如何提取用户在“TechRiskTable”表中添加的行中输入的值,以便将它们插入数据库中。我不需要帮助将其输入数据库,我可以自己做。我只是在提取实际值时遇到了问题。当我将其取消注释时,“document.write”位实际上会在页面上显示正确的值,但这仍然在函数中。我找不到从函数外部访问输入数据的方法。我尝试过使用request.querystring,但也没有返回任何数据

我假设我需要将它们从jsonArray()中取出,但是我找不到任何地方可以让它工作

如需任何澄清,请让我知道。我没有包括所有的代码,因为这篇文章会太长,但如果你需要更多,请询问


干杯

如果您理解正确,您正在尝试从函数外部访问mapObj JSON数组的内容(如果我错了,请告诉我),如果是,则更改函数以返回mapObj,然后访问函数外部的mapObj中的值,如mapObj.name1、mapObj.name2……我认为您是正确的(恐怕是问题的一部分),但是是的,我正在尝试访问用户在表单中输入的内容。但是如何更改函数以返回mapObj?抱歉,正如我所说,我是这个javascript的真正初学者。让我把它放在回答部分hmmm中。不,我认为我没有正确理解您。一旦用户提交表单,它将重定向到下一个页面验证并将所有数据插入数据库的页面。当他们单击提交按钮时,“onclick”调用此方法(onclick='getData(TechRiskTable);')。这就是你的意思吗?目前我的下一个页面只显示如下数据:TechRisk1=request.querystring(“mapObj.name1”)response.write“TechRisk1是”&TechRisk1但该变量从未出现。如果我能进一步澄清,请让我知道。我刚刚再次尝试输入您在末尾添加的那一点(我将其放置在函数之外),我收到一个javascript警报,提示:“类型错误:无法读取null的属性‘rows’。这有助于缩小问题的范围吗?@Terry,很抱歉延迟,但在访问JSON对象时,它不应介于”,情况就是这样,var name1=mapObj.name1。提交后如何将数据传递到下一页,请提供一些信息。表单中的所有其他数据都作为vbscript变量传递,这些变量是使用request.querystring命令调用的。但是,这不适用于我在这里尝试使用的mapObj。因此,存在一个表单中的数据混合-大部分是vbscript,表单的这部分(TechRiskTable)是javascript。下面是我让表单在用户提交时执行的操作:response.write“response.write”要添加,如果此方法正在返回数据,则将此方法放入onclick事件中没有帮助。如果此mapObj正在发布到服务器,以便另一个页面将填充数据,则您应该调用http POST或进入此方法内部,而不返回mapObj。请提供更多详细信息,以便我可以提供更多信息N
  function getData(TechRiskTable){

    try {
       var table = document.getElementById(TechRiskTable);
       var rowCount = table.rows.length;
       var jsonArray = new Array();
       for(var index=0; index < rowCount; index++) {
          var mapObj = {};
          var row = table.rows[index];
          var name1 = row.cells[0].childNodes[0];
          var name2 = row.cells[1].childNodes[0];
          var name3 = row.cells[2].childNodes[0];
          var name4 = row.cells[3].childNodes[0];
          var name5 = row.cells[4].childNodes[0];

          mapObj['name1'] = name1.value;
          mapObj['name2'] = name2.value;
          mapObj['name3'] = name3.value;
          mapObj['name4'] = name4.value;
          mapObj['name5'] = name5.value;

         // document.write("Value in jsonArray " + name1.value + "<br />");
         return mapObj;
      }
    }catch(e) {
       alert(e);
    }
    return null;
var mapObj = getData(TechRiskTable);
if(mapObj!=null)
{
  alert("name1 is "+mapObj.name1+" and name2 is "+mapObj.name2);
}