Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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_Html_Forms_Equations - Fatal编程技术网

使用表单为Javascript函数收集数据?

使用表单为Javascript函数收集数据?,javascript,html,forms,equations,Javascript,Html,Forms,Equations,我试图通过一个页面上的表单收集数据,然后将数据传输到下一个页面,以便在JS函数中使用。 (具体地说,我希望用户输入二次方程的A、B和C的值,然后发送到一个页面,脚本获取这些值并运行方程+输出答案) 这里是我第一页的代码---> 欢迎来到数学方程求解器 你想解哪个方程?(只需输入要求解的方程的数据) JS_数学脚本 函数答案() { var a=a_val 书面文件(a_val) var b=b_val var c=c_val 变量根=数学功率(b,2)-4*a*c var answer1=(

我试图通过一个页面上的表单收集数据,然后将数据传输到下一个页面,以便在JS函数中使用。 (具体地说,我希望用户输入二次方程的A、B和C的值,然后发送到一个页面,脚本获取这些值并运行方程+输出答案)

这里是我第一页的代码--->


欢迎来到数学方程求解器
你想解哪个方程?(只需输入要求解的方程的数据)

JS_数学脚本
函数答案()
{
var a=a_val
书面文件(a_val)
var b=b_val
var c=c_val
变量根=数学功率(b,2)-4*a*c
var answer1=(-b+数学sqrt(根))/2*a
var answer2=(-b-Math.sqrt(根))/2*a
如果(根)
总之,当我输入A、B和C的值时,我会进入第二页,但我没有得到结果。我尝试了inspect元素,控制台没有指示任何错误,因此我认为我的数据传输正确。有什么想法吗?

您可以使用
FormData()
中的
元素中检索值;使用
JSON.stringify()
encodeURIComponent()
将值作为查询字符串从
表单
传递到
JS_B.html

窗口
加载
事件
JS_B.html
,使用
decodeURIComponent()
JSON.parse()
位置检索对象。搜索
;使用传递的对象在
answer
函数中解构赋值以设置变量

包括
以下变量赋值,删除
以下
如果
条件

index.html

<!DOCTYPE html>
<html>

<head>
</head>

<body>
  <h1> Welcome to the Math Equation Solver </h1>

  <p> Which equation would you like to solve? (Simply input the data for the equation you wish to solve). </p>

  <form name="quad">

    <input type="text" name="a_val" size="5">
    <br>
    <input type="text" name="b_val" size="5">
    <br>
    <input type="text" name="c_val" size="5">
    <br>

    <input type="submit" value="Submit">
<!--
    <input type="hidden" name="a_val">
    <input type="hidden" name="b_val">
    <input type="hidden" name="c_val">
    -->
  </form>
  <script>
    var form = document.querySelector("form");
    form.onsubmit = function(e) {
      e.preventDefault();
      var data = new FormData(this);
      var obj = {};
      for (prop of data.entries()) {
        obj[prop[0]] = prop[1]
      };
      var query = encodeURIComponent(JSON.stringify(obj));
      location.href = "JS_B.html?" + query;
    }
  </script>
</body>

</html>

欢迎来到数学方程求解器
你想解哪个方程?(只需输入你想解的方程的数据)




var form=document.querySelector(“表单”); form.onsubmit=函数(e){ e、 预防默认值(); var数据=新的FormData(本); var obj={}; for(数据项的属性()){ obj[prop[0]]=prop[1] }; var query=encodeURIComponent(JSON.stringify(obj)); location.href=“JS_B.html?”+查询; }
JS_B.html

<!DOCTYPE html>
<html>

<head>

</head>

<body>
  <script>

    function answer(obj) {

      var {
        a_val: a,
        b_val: b,
        c_val: c
      } = obj;
      document.writeln(a);
      var root = Math.pow(b, 2) - 4 * a * c;
      var answer1 = (-b + Math.sqrt(root)) / 2 * a;
      var answer2 = (-b - Math.sqrt(root)) / 2 * a;
      if (root < 0) {
        alert('This equation has no real solution.')
      } else {
        if (root == 0) {
          answerOne = answer1;
          document.writeln(answerOne);
          answerTwo = 'No Second Answer'
        } else {
          answerOne = answer1;
          document.writeln(answerOne);
          answerTwo = answer2;
          document.writeln(answerTwo)
        }
      }
    } // End -->

    window.onload = function() {
      var obj = JSON.parse(decodeURIComponent(location.search.slice(1)));
      console.log(obj);
      answer(obj);
    }
  </script>

  <input type="hidden" name="a_val">
  <input type="hidden" name="b_val">
  <input type="hidden" name="c_val">
  <input type="hidden" name="answerOne">
  <input type="hidden" name="answerTwo">
  <input type="hidden" name="Answer">

</body>

</html>

功能应答(obj){
变量{
a_val:a,
b_val:b,
c_val:c
}=obj;
书面文件(a);
var root=Math.pow(b,2)-4*a*c;
var answer1=(-b+数学sqrt(根))/2*a;
var answer2=(-b-数学sqrt(根))/2*a;
if(根<0){
警报('此等式没有实际解')
}否则{
如果(根==0){
answerOne=answer1;
书面文件(答复);
答案二=‘没有第二个答案’
}否则{
answerOne=answer1;
书面文件(答复);
answerTwo=answer2;
书面文件(答复二)
}
}
}//结束-->
window.onload=函数(){
var obj=JSON.parse(decodeURIComponent(location.search.slice(1));
控制台日志(obj);
答案(obj);
}
plnkr

您可以使用
FormData()
中的
元素中检索值;使用
JSON.stringify()
encodeURIComponent()
将值作为查询字符串从
form
传递到
JS_B.html

窗口
加载
事件
JS_B.html
,使用
decodeURIComponent()
JSON.parse()
位置检索对象。搜索
;使用传递的对象在
answer
函数中解构赋值以设置变量

包括
以下变量赋值,删除
以下
如果
条件

index.html

<!DOCTYPE html>
<html>

<head>
</head>

<body>
  <h1> Welcome to the Math Equation Solver </h1>

  <p> Which equation would you like to solve? (Simply input the data for the equation you wish to solve). </p>

  <form name="quad">

    <input type="text" name="a_val" size="5">
    <br>
    <input type="text" name="b_val" size="5">
    <br>
    <input type="text" name="c_val" size="5">
    <br>

    <input type="submit" value="Submit">
<!--
    <input type="hidden" name="a_val">
    <input type="hidden" name="b_val">
    <input type="hidden" name="c_val">
    -->
  </form>
  <script>
    var form = document.querySelector("form");
    form.onsubmit = function(e) {
      e.preventDefault();
      var data = new FormData(this);
      var obj = {};
      for (prop of data.entries()) {
        obj[prop[0]] = prop[1]
      };
      var query = encodeURIComponent(JSON.stringify(obj));
      location.href = "JS_B.html?" + query;
    }
  </script>
</body>

</html>

欢迎来到数学方程求解器
你想解哪个方程?(只需输入你想解的方程的数据)




var form=document.querySelector(“表单”); form.onsubmit=函数(e){ e、 预防默认值(); var数据=新的FormData(本); var obj={}; for(数据项的属性()){ obj[prop[0]]=prop[1] }; var query=encodeURIComponent(JSON.stringify(obj)); location.href=“JS_B.html?”+查询; }
JS_B.html

<!DOCTYPE html>
<html>

<head>

</head>

<body>
  <script>

    function answer(obj) {

      var {
        a_val: a,
        b_val: b,
        c_val: c
      } = obj;
      document.writeln(a);
      var root = Math.pow(b, 2) - 4 * a * c;
      var answer1 = (-b + Math.sqrt(root)) / 2 * a;
      var answer2 = (-b - Math.sqrt(root)) / 2 * a;
      if (root < 0) {
        alert('This equation has no real solution.')
      } else {
        if (root == 0) {
          answerOne = answer1;
          document.writeln(answerOne);
          answerTwo = 'No Second Answer'
        } else {
          answerOne = answer1;
          document.writeln(answerOne);
          answerTwo = answer2;
          document.writeln(answerTwo)
        }
      }
    } // End -->

    window.onload = function() {
      var obj = JSON.parse(decodeURIComponent(location.search.slice(1)));
      console.log(obj);
      answer(obj);
    }
  </script>

  <input type="hidden" name="a_val">
  <input type="hidden" name="b_val">
  <input type="hidden" name="c_val">
  <input type="hidden" name="answerOne">
  <input type="hidden" name="answerTwo">
  <input type="hidden" name="Answer">

</body>

</html>

功能应答(obj){
变量{
a_val:a,
b_val:b,
c_val:c
}=obj;
书面文件(a);
var root=Math.pow(b,2)-4*a*c;
var answer1=(-b+数学sqrt(根))/2*a;
var answer2=(-b-数学sqrt(根))/2*a;
if(根<0){
警报('此等式没有实际解')
}否则{
如果(根==0){
answerOne=answer1;
书面文件(答复);
答案二=‘没有第二个答案’
}否则{
answerOne=answer1;
书面文件(答复);
answerTwo=answer2;
书面文件(答复二)
}
}
}//结束-->
window.onload=函数(){
var obj=JSON.parse(decodeURIComponent(location.search.slice(1));
控制台日志(obj);
答案(obj);
}

plnkr

var answer1=(-b+Math.sqrt(root))/2*a;
var answer2=(-b-Math.sqrt(root))/2*a的预期结果可能重复
var answer1=(-b+Math.sqrt(root))/2*a;
var answer2=(-b-Math.sqrt(root))/2*a的预期结果可能重复