我的问题基本上就是我有这样的事情:
if (!empty($_POST['field1'])OR !empty($_POST['field2']) OR !empty($_POST['field3'] ))
{
// SUBMIT FORM
} else {
// display error message
}
我的问题是我真的不知道如何使用代码提交表单,因为我没有真正的PHP经验。
我正在使用所有!empty($_POST['field1']
因为我的表单中有16个输入字段,前5个总是需要,但在其他11个输入字段中需要最少1个输入,我认为这是最简单的解决方案。
有一个小问题,我也想知道如何阻止表单提交到另一个页面,这样我就可以在页面上写错误或其他内容。
答案 0 :(得分:0)
您只能在php中提交表单时检查字段。所以只需将表单提交到同一页面,在html开始之前在页面顶部,添加if条件以满足您需要的条件。如果条件为false,则可以使用包含错误消息的变量加载同一页面。另外,您可以使用javascript进行客户端验证。
答案 1 :(得分:0)
在客户端进行所有验证,如果一切顺利,则从javascript提交表单或在同一页面上显示错误...
document.getElementById('theForm').submit();
请参阅以下链接以获取更多信息:
How to submit a form using javascript?
How to submit a form with JavaScript by clicking a link?
服务器端验证也可以在PHP中完成,在这种情况下,您需要通过PHP重定向到包含表单的页面,如http://in2.php.net/manual./en/function.header.php所示
答案 2 :(得分:0)
您无法使用PHP提交表单,您需要使用Javascript(或jQuery)。
使用Javascript:
document.getElementById("your_form_name").submit();
或使用jQuery:
$('#your_form_name').submit();
根据您的第二个问题 - 在定义表单时,您可以定义操作属性。
通常,'script.php'将是一个单独的文件,这将导致浏览器导航到此文件。 要绕过此选项,您至少有两个选项:
希望这有帮助!
答案 3 :(得分:0)
为什么要再次提交变量? 你的请求!空($ _ POST ['field1'])等似乎你已经提交了变量,现在正在检查它们是否为空......
如果是这样,你可以设置一个“标志”你的变量是否正常。 例如:
if (!empty($_POST['field1'])OR !empty($_POST['field2']) OR !empty($_POST['field3'] ))
//or other if condition
{
$countinue = true; // set "flag"
}
else
{
$continue = false;
}
然后:
if($continue == true)
{
// continue what you want to do next
}
else
{
// stop process and echo error message
}
另一种可能性是在检查后使用GET方法再次提交变量。这意味着调用另一个页面并将变量(加密)添加到URL中,例如,而不是设置标志变量$ continue = true:
header("Location:next-page.php?var1=$_POST['field1']&var2=$_POST['field2]");
答案 4 :(得分:0)
你可以这样做
if(isset($_POST['field1'],$_POST['feild2'],$_POST['field3'])) { // submit the form }
显示错误消息,您可以使用javascript
或jQuery
,我正在使用jquery。
head
中包含jquery。script
写入单独的文件中。并在头部添加.js
。$(document).ready(function(){ var val1 = $("#IdOfField1").val(); var val2 = $("#IdOfField2").val(); var val3 = $("#IdOfField3").val(); // now validate the fields as per your requirement. if(val1!='' || val1.lengh != 0) { alert('Enter your name'); return false;} else{return true;} });