每秒自动提交表单刷新

时间:2017-12-15 13:54:21

标签: javascript php forms

我对此代码有点问题:

          <form class="form-horizontal" method="post" action="{{ route('bilan.resultat.add', ['bilanId' => $bilan->id] )}}" id="form" name="formu">
        {{ csrf_field() }}
      <table class="table table-striped">
        <thead>
          <tr>
            <th>Sexe</th>
            <th>Age</th>
            <th>Taille</th>
            <th>Poids</th>
          </tr>
        </thead>
        <tbody class="text-primary">
          <tr>
            <td><input id="age" size="7" maxlenght="3" name="valage" value="{{ $bilan->age }}" readonly></td>
            <td><input size="7" maxlenght="3" name="valtaille" value="{{ $bilan->Taille_cm }}" readonly></td>
            <td><input type="hidden" size="2" maxlenght="3" id="anc_id" name="anc_id" value="{{ $bilan->resultat->anc_id }}" readonly></td>
            <td><a href="/bilans" class="btn btn-outline-primary pull-right" role="button">Retour</a></td>
          </tr>
        </tbody>
      </table>
      <table class="table table-responsive">
        <tr>
          <td><p class="text-primary">Indice de masse corporelle (IMC)</p></td>
          <td><input name="imc" size="5" value="@if($bilan->resultat !== null) {{ $bilan->resultat->imc }} @endif"/></td>
          <td><p hidden class="text-primary">Fréquence cardiaque maximale</p></td>
          <td><input type="hidden" name="fcm" size="5" value="@if($bilan->resultat !== null) {{ $bilan->resultat->fcm }} @endif"/><a hidden>  b/min</a></td>
        </tr>
        <tr>
          <td><p class="text-primary">Distance minimale normale</p></td>
          <td><input name="dmn" size="5" value="@if($bilan->resultat !== null) {{ $bilan->resultat->dmn }} @endif"/><a> m</a></td>
          <td><p hidden class="text-primary">Fréquence cardiaque de travail 50%</p></td>
          <td><input type="hidden" name="fct50" size="5" value="@if($bilan->resultat !== null) {{ $bilan->resultat->fct50 }} @endif"/><a hidden> b/min</a></td>
        </tr>
      </table>
      <a href="/bilans" class="btn btn-outline-primary pull-right" role="button">Retour</a>
    </form>

我想在页面加载时自动加载表单,所以我添加了脚本:

<script>
window.onload = function() { ancrecupid(); calculerIMC(); calculerDMN(); document.getElementById('form').submit(); };
</script>

它可以工作,但页面每秒重新加载,我只想要一次加载表单... 我有几个函数可以加载{i} {/ 1}}

的原因

我的代码有什么问题?

2 个答案:

答案 0 :(得分:1)

您的代码没有任何问题。它按书面工作。您需要的是flag,表示您的网页是通过get请求还是post请求加载的。目前,您的JS代码无法区分它们,这就是它进行无限重定向的原因。要解决此问题,您必须从后端代码返回flag并在JS代码中使用flag。您可以从以下链接中获取帮助

Checking if request is post back in PHP

您可以使用ajax

链接:http://api.jquery.com/jquery.ajax/

答案 1 :(得分:0)

使用jQuery,就是这样的想法。不确定你是否还需要其他功能

$(document)ready(function() {
  var myform = $('#form'); 
  // every 1 second:
  setInterval(function() {
    // send Ajax request, with form data
    $.ajax({
      type: 'post',
      url: myform.attr('action'),
      data: myform.serialize(),   // this reads all the inputs/select, ... puts it all in the correct format...
      success: function(response) {
        // response holds whatever you echoed with php.  For example you can show that response in a div <div id="response"></div>
        $('#response').html(response);
      }
    });

  }, 1000);
})