我在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
require("profile.php");
$ss = new Profile($_POST['first_name'], $_POST["last_name"],
$_POST["course"], $_POST["international"]);
echo $ss->printDtails();
?>
课程资料
<?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 :(得分:0)
在printDtails()
功能中,您需要echo $this->_firstName
同样在您的课程中,单词构造拼写错误,您需要__contruct
它需要__construct
答案 1 :(得分:0)
这对我有用,但我确实稍微修改了你的代码。
我必须承认我自己在上课,所以这可能是也可能不是你想要的,但它确实有效。
此外,在printDtails()
功能中,它需要echo $this->_firstName;
等。
我将您的构造更改为$this->_firstName = $_POST['first_name'];
等。
N.B。:单词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
}
}
?>