Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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
使用路由在php中提交前验证表单_Php_Html_Forms_Validation_Routes - Fatal编程技术网

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

使用路由在php中提交前验证表单,php,html,forms,validation,routes,Php,Html,Forms,Validation,Routes,我必须在提交前验证一个表单,在这段代码中我使用路由,所以我不能使用$_服务器[“PHP_SELF”](也许)有人能帮我吗 <form name="user" action="index.php?action=save-report" method="post"> <div class="form-group"> <label for="report"&

我必须在提交前验证一个表单,在这段代码中我使用路由,所以我不能使用$_服务器[“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,只需在输入中添加一个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;
   }
}

功能验证(elem){
如果(元素值!=“Ciao”){
elem.classList.add(“notValid”);//例如红色边框或红色标签。。。
document.getElementById(“提交”).disabled=true;
否则{
元素类列表删除(“无效”);
document.getElementById(“提交”).disabled=false;
}
}

既然您已经在使用html5,请看一下: 大多数现代浏览器都会先验证您的输入,然后才能将其发布到服务器,而无需使用javascript

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

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


请参阅和属性的说明。

欢迎使用StackOverflow!您能详细说明“我使用路由,所以我不能使用超全局”的含义吗?@ArSeN在表单的操作中,我重定向到路由文件,但我希望发送一条消息(例如,如果用户写错了什么)在提交之前不刷新页面验证?使用jquery或javascript,我相信在堆栈周围有很多解决方案