2014-01-07 133 views
2

我已經在html中創建了一個表單,它使用php中的post方法將所有信息打印出來供用戶使用,但它看起來像我的表單有問題。它不打印用戶輸入的詳細信息,我試圖填充,然後按提交創建類配置文件的對象,將用戶的所有信息分配給對象並在瀏覽器上打印出來,但沒有任何內容出現在瀏覽器上。表單不打印出詳細信息

我也試圖迴應像getFirstName這樣的方法,但它同樣沒有出現,任何人都可以幫助我找出最新的代碼問題,我該如何解決它。

請注意,我已經包含三個不同的文件,一個是html表單,另一個是passingdata.php,它將獲取用戶輸入的所有信息,第三個文件是用於傳遞數據以創建一個對象併爲其提供所有需要的信息以創建該類的對象。

最後,我已經調用了哪些應打印出用戶輸入的所有信息的方法printDeatils

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title><?php echo 'Student Deatils';  ?></title> 
    </head> 
    <body> 
     <p>Please enter your Details:</p> 
     <div> 
     <form name="student" method="post" action="passingdata.php"> 
      <div> 
      <label>First name:</label> <input type ="text" name="first_name"> 
      <label>Last name</label> <input type ="text" name="last_name"> 
      <br></br> 
      <label>International student</label> <input type="checkbox" name="international"> 
       <br></br> 
       <fieldset> 
        <legend>Course</legend> 
      <label>CS <input type="radio" name="course" value="CS"></label> 
      <label>SE <input type="radio" name="course" value="SE"></label> 
      <label>MIT <input type="radio" name="course" value="MIT"></label> 

      </fieldset> 
       <br></br> 
       <input type="submit" name="Submit" value="Submit"> 
       <input type="reset" name="Resit" value="Reset"> 
      </div> 
     </form> 
      </div> 
     <?php 


     ?> 
    </body> 
</html> 

的傳遞數據文件:

​​

類簡介:

<?php 


class Profile { 
    private $_firstName, $_lastName, $_international, $_course; 

    function __contruct ($firstName, $lastName, $course, $international) { 
$this->_firstName = $firstName; 
$this->_lastName = $lastName; 
$this->_course = $course; 
$this->_international = $international; 
} 



    public function setFirstName($firstName) 
    { 
     $this->_firstName = $firstName; 

    } 
    public function setLastName($lastName) 
    { 
     $this->_lastName = $lastName; 
    } 
    public function setInternational($inter) 
    { 

      $this->_international = $inter; 
    } 
    public function setCourse($course) 
    { 
      $this->_course = $course; 
    } 
    public function getFirstName() 
    { 
     return $this->_firstName; 
    } 
     public function getLastName() 
    { 
      return $this->_lastName; 
    } 
     public function getInternational() 
    { 
     return $this->_international; 
    } 
    public function getCourse() 
    { 

     return $this->_course; 
    } 
    public function printDtails() 
    { 
     echo "$_firstName"; 
    } 
} 

?> 
+0

您需要回顯'$ this - > _ firstName' - 您在setters和getters中正確使用它,但不能在打印功能中使用它。 – andrewsi

+0

$ this - > _ firstName不是$ _firstName – 2014-01-07 19:55:55

+0

我試過了,但它不起作用 – user3170512

回答

0

printDtails()功能,你需要echo $this->_firstName

而且在你的班上,字結構的拼寫錯誤,你有__contruct它需要__construct

+0

我已經嘗試過,但它不工作 – user3170512

+1

你的類構造拼寫錯誤,你有「__結構」它需要是「__結構」 – frosty11x

0

這爲我工作,但我也稍微修改代碼。

我必須承認自己正在學習課程,所以這可能是也可能不是你想要的,但它確實有效。

此外,您printDtails()函數中,它需要一個echo $this->_firstName;

我改變了你的結構到$this->_firstName = $_POST['first_name'];

注:construct是拼寫錯誤爲contruct與失蹤s

這是我想出的:

<?php 

class Profile { 

    private $_firstName, $_lastName, $_international, $_course; 
    function __construct ($_firstName, $_lastName, $_international, $_course) 

{ 
$this->_firstName = $_POST['first_name']; // modified 
$this->_lastName = $_POST['last_name']; // modified 
$this->_course = $_POST['course']; // modified 
$this->_international = $_POST['international']; // modified 
} 

    public function setFirstName($firstName) 
    { 
     $this->_firstName = $firstName; 
    } 

    public function setLastName($lastName) 
    { 
     $this->_lastName = $lastName; 
    } 
    public function setInternational($inter) 
    { 
      $this->_international = $inter; 
    } 
    public function setCourse($course) 
    { 
      $this->_course = $course; 
    } 
    public function getFirstName() 
    { 
     return $this->_firstName; 
    } 
     public function getLastName() 
    { 
      return $this->_lastName; 
    } 
     public function getInternational() 
    { 
     return $this->_international; 
    } 
    public function getCourse() 
    { 
     return $this->_course; 
    } 
    public function printDtails() 
    { 
    echo $this->_firstName . "\n"; // modified 
    echo $this->_lastName . "\n"; // modified 
    echo $this->_course . "\n"; // modified 
    echo $this->_international . "\n"; // modified 
    } 
} 

?>