使用路由在 php 中提交之前验证表单

Validate form before submit in php with the routes

我必须在提交前验证表单,在此代码中我使用路由,所以我不能使用 $_SERVER["PHP_SELF"](也许)有人可以帮助我吗?

<form name="user" action="index.php?action=save-report" method="post">
   <div class="form-group">
     <label for="report">Quante persone ci sono secondo te? </label>
     <br>
     <input type="number" id="report" name="report"  maxlength="180"  style="width: 5%" class="form-control" required >
   </div>
   <br>

   <button class="btn btn-primary">Invia</button>
   <input type="hidden" id="user__token" name="user[_token]" value="">
   <br>
</form>

谢谢

最好的不刷新验证方式是Javascript,只要在input上加一个onchange属性,通过js验证即可。

<input type="text" onchange="validate(this)" required>
<input type="submit" id="submit" value="Invia">

function validate(elem) {
   if (elem.value != "Ciao") {
      elem.classList.add("notValid"); //for example red border or red label...
      document.getElementById("submit").disabled = true;
   else {
      elem.classList.remove("notValid");
      document.getElementById("submit").disabled = false;
   }
}

既然您已经在使用 html5,请查看 html5 form validation: 大多数现代浏览器会在 post 将其发送到您的服务器之前验证您的输入,而不需要 javascript.

即如果您希望您的输入允许最少 1 人和最多 180 人进入,您可以使用:

<input type="number" id="report" name="report" min="1" max="180"  style="width: 5%" class="form-control" required >

参见 min and max 属性的解释。