这就是我所拥有的:
<html>
<head>
<?php
$validForm = false;
function getValue($field){
if(isset($_GET[$field])){
return $_GET[$field];
}
else{
return "";
}
}
function validateForm(){
//magic goes here.
}
?>
</head>
<body>
<?php if($validForm == false){ ?>
<form action="class2.php" method="get">
<dl>
<dt>First Name:</dt>
<dd><input type="text" value="<?php echo htmlspecialchars(getValue('name')) ?>" name="name" />
</dd>
<dt>Last Name:</dt>
<dd><input type="text" value="<?php echo htmlspecialchars(getValue('lastname')) ?>" name="lastname" />
</dd>
<br />
<dt>
<input type="submit" value="enviar" />
</dt>
</dl>
</form>
<?php
} else {
?>
<h1>Congratulations, you succesfully filled out the form!</h1>
<?php }
?>
</body>
我在哪里调用validateForm()?我不确定。 我想要的是继续显示表单,直到$ validForm变量为true。 :)
谢谢你,所以你总是帮助我。
答案 0 :(得分:0)
您必须在提交按钮中添加名称:
<input type="submit" value="enviar" name="validate" />
在声明validateForm之后
你把
if(getValue("validate") != "")
validateForm();
答案 1 :(得分:0)
function validateForm(){
if ( ) // Your form conditions go here
{
return true;
} else {
return false;
}
}
if ( $_GET ) // Only validate the form if it was submitted
{
$validForm = validateForm();
} else {
$validForm = false;
}
某些条件的例子:
if ( !empty ( $_GET[ 'name' ] ) and !empty ( $_GET[ 'lastname' ] ) ) // Check if the user entered something in both fields
我只建议您更改getValue
功能。
改变
是个好主意return $_GET[$field];
类似
return htmlspecialchars ( trim ( $_GET[$field] ) );
这将删除不必要的空格并立即转义输出。
您应采取的下一步或可能的第一步是将表单从GET
更改为POST
,在大多数情况下,通过{{1}发送表单数据是一个坏主意}。
答案 2 :(得分:0)
e.g。 <input type="submit" value="enviar" id="submitButton" />
设置$ validForm会看到这个:$validForm = validateForm();
(而不是“$ validForm = false;”)
你的validateForm函数应检查“$ _POST [”submitButton“]”是否已设置,如果你的数据有效(设置,正确类型等等),如果所有这些都没问题,则返回“true” “,否则”假“
答案 3 :(得分:0)
<html>
<head>
<?php
$validForm = validateForm();
下进行。