我无法确保所有的表单输入都填写在OOP中。通常我可以做到这一点。但是,我在使用OOP进行编程方面是新手。我要确保当我单击按钮时。
它将控制我所有的表格是否为空。如果为空,则必须回显一条消息(该消息在荷兰语中,但基本上意味着您仍然有未填写的输入内容)。但是,它不起作用。该消息始终显示,即使我确实填写了输入内容并单击“提交”。我不知道我在做什么错。
我的代码:
<?php
class UserForm{
//Making properties to later use
private $Vvoornaam;
private $Vachternaam;
private $Vemail;
private $Vbericht;
private $Bsubmit;
public function __contruct() {
//Giving the properties a value
$this->Vvoornaam = $_POST["voornaam"];
$this->Vachternaam = $_POST["achternaam"];
$this->Vemail = $_POST["email"];
$this->$Vbericht = $_POST["bericht"];
$this->$Bsubmit = $_POST["submit"];
}
public function Index() {
//Checking if a message has been posted yes or no. If yes, then execute the code from line 21 to 41
if(isset($_POST[$this->Bsubmit]) && empty($this->Vvoornaam) || empty($this->Vachternaam) || empty($this->Vemail) || empty($this->Vbericht)) {
echo "U moet nog al uw gegevens invullen";
}
}
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$userForm = new UserForm(); $userForm->Index();
}
?>
您所看到的问题是,当您提交并且输入为空时,应该会出现此消息。但是,此消息始终存在。
我希望你们能帮助我。那就太好了!
答案 0 :(得分:1)
您在s
中缺少__contruct()
,可以将其更新为:
public function __construct()
此外,我认为这将是空的empty($this->Vbericht)
尝试从$this->$
删除开头的美元符号
更改
$this->$Vbericht = $_POST["bericht"];
$this->$Bsubmit = $_POST["submit"];
到
$this->Vbericht = $_POST["bericht"];
$this->Bsubmit = $_POST["submit"];
您的功能如下:
public function Index() {
if (isset($this->Bsubmit) && empty($this->Vvoornaam) || empty($this->Vachternaam) || empty($this->Vemail) || empty($this->Vbericht)) {
echo "U moet nog al uw gegevens invullen";
}
}
答案 1 :(得分:-1)
您是否使用 if语句
if($this->Vvoornaam =='' || $this->Vachternaam=='' || $this->Vemail=='' || $this->$Vbericht==''){
echo "All field must be filled.";
exit();
}else{
echo "everything is filled";
}
答案 2 :(得分:-1)
还要确保在检查$_POST
数组中的值是否为空或未设置后,再设置属性值。
我会做这样的功能
public function ValidateForm($data) {
if(!isset($data["voornaam"]) && strlen($data["voornaam"]) < 1) {
echo "Please fill in the 'voornaam' field";
return false;
}
else {
$this->SetData($data);
return true;
}
因此,现在我们确保在设置完所有输入后,可以调用函数:
public function SetData($data) {
$this->voornaam = $data["voornaam"];
}
您的输入名称将是这样
name="data[voornaam]"
在您的html / php文件中,一旦设置了提交,就会触发该功能。
$obj = new UserForm();
if(isset($_POST["submit"]) { $obj->ValidateForm($_POST["data"]); }