나는 PHP에 익숙하지 않다. 이것은 나의 첫 번째 글이며, 코딩에 대한 나의 사과와 코딩의 불편 함을 지적한다. 정확하게 코드를 게시하는 방법을 잘 모르겠습니다. 하지만 제 질문은 상당히 간단하다고 생각합니다.제출시 유효성 검사가 실패한 후 PHP에서 빈 html 양식을 다시 표시하는 방법. 헤더 리디렉션을 사용하지 않고?
내가 PHP는 OOP를 배우고 내가 다른 다양한 멤버 함수 단순히 에코 html 태그 및 디스플레이 객체 클래스에서 생성displayContactForm()
이
method='POST'
를 사용하여 객체 함수에서 호출 PHP에서 HTML 양식을 다시 표시하는 것을 시도하고있다
html 형식의 간단한`contact.php 페이지.
사용자가 제출 한 조회와 검증에 실패한 후 빈 값으로 양식을 다시 표시하면 양식이 본질적으로 삭제되고 사용자가 정보를 다시 입력해야합니다. 하나의 if/else
문을 써서 $_POST
이 설정되어 있는지 확인하고 필드가 !empty
인지 확인합니다. (else) "cleansed form (or) clear form again somehow"? 아래 코드에 내 코드를 게시했습니다. if-else 문은 31-38 줄입니다. 헤더 재배치를 사용할 수 없습니다. 이 프로젝트에서 사용하기로되어있는 else 문에 대한 제안 된 줄은 $ this-> displayContactForm ($ this-> form)입니다. 폼을 다시 표시합니다. 그러나 그것은 페이지에있는 원래 양식 아래에 양식을 복제하고 두 양식으로 끝나나요? 나는 혼란 스럽다 ... 어떤 도움을 주셔서 감사합니다.
<?php
require('./PageLib.php');
require('./ContactFormLib.php');
//created a class called ContactPage that extends class Page
class ContactPage extends Page{
public $form;
public function __construct($arg=NULL) {
$this->form = new ContactForm();
}
//OVERRIDDEN Page::displayPage()
public function displayPage(){
echo "<html>\n<head>\n";
//HEAD/////////////////
$this->displayTitle();
$this->displayStyles();
echo "</head>\n<body>\n";
//HEADER///////////////
$this->displayHeader();
$this->displayNav($this->navLinks);
//CONTENT//////////////
$this->displayContactForm($this->form);
echo $this->content;
$this->displayFooter();
if(isset($_POST['name'], $_POST['phone'], $_POST['email']) && !empty($_POST['name']) && !empty($_POST['phone']) && !empty($_POST['email'])){
echo " Checked form values. Now echoing content to page.";
}
else {
$this->displayContactForm($this->form);
}
echo "\n</body>\n</html>\n";
public function displayContactForm($f) {
$f->displayForm();
}
}
$contactpage = new ContactPage();
$contactpage->pageTitle = "Contact Page";
$contactpage->headerTitle = "Contact - OOP php Page Builder";
$contactpage->content="<h3>Contact Page Content</h3>\n";
$contactpage->displayPage();
?>