如何在一个标签中提交表单并在下一个标签中查看结果?

时间:2017-05-31 09:04:41

标签: javascript php jquery html forms

页面上有三个标签。输入,输出和审查。 Html表单位于输入选项卡中,用户在文本框中输入输入。我想从该输入值计算一些东西,并通过单击提交按钮在下一个选项卡OUTPUT中显示它。 我已经有了那个用该输入进行计算的文件。

非常感谢答案。

    <div class="container tabs-wrap">
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active">
      <a href="#input" aria-controls="input" role="tab" data-toggle="tab" aria-expanded="true">Input</a>
    </li>
    <li>
      <a href="#output" aria-controls="output" role="tab" data-toggle="tab" aria-expanded="false">Output</a>
    </li>
    <li>
      <a href="#review" aria-controls="review" role="tab" data-toggle="tab" aria-expanded="false">Review &amp; Email</a>
    </li>
  </ul>

<div class="tab-content">

  <div role="tabpanel" class="tab-pane active" id="input">
  <h2>Web based two tier ground mount bill of material generator</h2>
  <form class="form-horizontal" action="output.php" method="post" target="_blank">

    <div class="form-group">
      <label class="control-label col-sm-2" for="count">Module Count:</label>
      <div class="col-sm-10">          
        <input type="number" class="form-control" id="count" placeholder="Enter Number of Modules" name="count">
      </div>
    </div>
    <div class="form-group">        
      <div class="col-sm-offset-2 col-sm-10">
        <button type="submit" class="btn btn-primary continue">Continue</button>
      </div>
    </div>
  </form>

4 个答案:

答案 0 :(得分:0)

试试这个,

$(function() {
  $('#btnSubmit').on('click', function() {
    // your code goes here
    $('#outputSpan').text($('#count').val());
    // not triiger output tab to be open
    $('[href="#output"]').trigger('click');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />

<div class="container tabs-wrap">
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active">
      <a href="#input" aria-controls="input" role="tab" data-toggle="tab" aria-expanded="true">Input</a>
    </li>
    <li>
      <a href="#output" aria-controls="output" role="tab" data-toggle="tab" aria-expanded="false">Output</a>
    </li>
    <li>
      <a href="#review" aria-controls="review" role="tab" data-toggle="tab" aria-expanded="false">Review &amp; Email</a>
    </li>
  </ul>

  <div class="tab-content">

    <div role="tabpanel" class="tab-pane active" id="input">
      <h2>Web based two tier ground mount bill of material generator</h2>
      <form class="form-horizontal" action="output.php" method="post" target="_blank">

        <div class="form-group">
          <label class="control-label col-sm-2" for="count">Module Count:</label>
          <div class="col-sm-10">
            <input type="number" class="form-control" id="count" placeholder="Enter Number of Modules" name="count">
          </div>
        </div>
        <div class="form-group">
          <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" id="btnSubmit" class="btn btn-primary continue">Continue</button>
          </div>
        </div>
      </form>
    </div>
    
    <div role="tabpanel" class="tab-pane" id="output">
      <h2>Output</h2>
      <span id="outputSpan"></span>
    </div>
  </div>
</div>

答案 1 :(得分:0)

根据您的代码,您应该在一个html文件中包含所有三个选项卡(而不是单独的文件)。有关详细信息,请查看here

您可以将功能附加到处理计算的“继续”按钮

$(".continue").on("click", function () {
      //Handle calculation, changing tabs and writing results here
      // do your calculations here
      $('.nav-tabs a[href="#output"]').tab('show'); // change active tab
      $( '.resultElemClass' ).text('calculationValue'); // output the result
});

答案 2 :(得分:0)

一种可能的方法:

onFormSubmit(calculatedValue){
  $('#output').html(calculatedValue);
}

逻辑是,当您成功提交表单时,请确保将计算出的值附加到#output,或者将要附加到其中的div附加到。

如果您使用AJAX与PHP通信,它看起来像这样:

 $.ajax({
        url: "file.php",
        type: "post",
        data: values,
        success: function (response) {
           // you will get calculated value from your php page (what you echo or print) 
          $('#output').html(response);                       
        }
       });

答案 3 :(得分:0)

假设输出选项卡是另一个视图文件,您可以使用javascript的导出功能。就像根据您的需要接受输入过程一样,然后使用如下函数:

// file1.js
export function value() {
  return "Your output";
}

file1是您接受输入或处理输入的地方

// output.js
import {hello} from 'file1'; // or './file1'
let val = value(); // val is Your output;

确保在输出文件中加上“if”并在一定的时间间隔(1秒左右)后刷新它,所以尽快得到该值。