HTML表单显示不正确 - 给出奇怪的结果

时间:2017-02-14 01:34:08

标签: php html forms

所以,我正在尝试使用HTML / PHP创建一个非常基本的表单。是的,我是初学者。

我正在寻找与此类似的东西。

但相反,我得到了这个。

表单包含一些字段的文本输入,例如“名称”,“用户名”,“电子邮件”,然后是一个下拉列表,用于选择您选择的浏览器。很基本的东西。我正在尝试将用户输入返回到屏幕。唯一的问题是,当页面加载时,我有一个空的下拉框,没有可供选择的浏览器。

我创建了一个名为“Select”的PHP类,非常简单。它有一些基本功能。我还创建了另外两个文件,postInfo.php(用于返回用户信息)和userForm.php(用于创建表单的文件)。

我已经尝试过调试和测试,我几乎可以肯定Select类没有任何问题,而且其他两个文件已经通过代码验证器运行,没有任何问题出现。一切都应该没问题,但这开始让我头疼。

这是我的Select课程:

<?php
    $browsers = array ("Firefox", "Chrome", "Internet Explorer", "Safari", "Opera", "Konqurer", "Other");

    class Select {

        private $name;
        private $value;

        #Getter & Setter methods
        public function setName($name) {
            $this -> name = $name;
        }

        public function getName() {
            return $this -> name;
        }

        public function setValue($value){
            if (!is_array($value)){
                echo ("No array values found.");
            }
        $this->value = $value;
        }

        public function getValue() {
            return $this -> value;
        }

        #Method to implement browsers
        private function createBrowserList($value){
            foreach($value as $val){
                echo "<option value=\"$val\">" . $val . "</option>\n";
            }
        }

        #Method to create the selection field
        public function createSelections(){
            echo "<select name=\"" . $this->getName() . "\">\n";
            $this -> makeOptions ($this->getValue());
            echo "</select>" ;
        }
    }
?>

我的postInfo.php文件:

<?php
    $name = $_POST["name"];
    $username = $_POST["username"];
    $email = $_POST["email"];
    $browser = $_POST["browser"];

    echo "$name <br>";
    echo "$username <br>";
    echo "$email <br>";
    echo "$browser <br>";
?>

我的userForm.php文件(用于创建实际表单)

<html>
    <body>
        <form action ="postInfo.php" method="post" id="form">
        Name:<input type ="text" name="name"> <br>
        Username:<input type ="text" name="username"> <br>
        Email:<input type ="email" name="email"> <br>

    <?php
        include "selectClass.php";
        $selection = new Select();
        $selection -> setName("Select Browser");
        $selection -> setValue($browsers);
        $selection -> createSelections();
    ?>

        <input type = "submit" name = "submit" value = "Go!">
        </form>
    </body>
</html>

2 个答案:

答案 0 :(得分:0)

public function createSelections(){
    echo "<select name=\"" . $this->getName() . "\">\n";
    $this -> createBrowserList ($this->getValue());
    echo "</select>" ;
}

答案 1 :(得分:0)

您可以使用以下内容:

<?php 
$browservalue=array();
$browsers = array ("Firefox", "Chrome", "Internet Explorer", "Safari", 
"Opera", "Konqurer", "Other");
foreach ($browsers as $x){
$browservalue[]=strtolower($x);
}
$browsersqnty=sizeof($browsers);
?>

然后在你要回复浏览器的html里面你可以这样做:

Browsers:<select name='browsers'><?php 
for($i=0;$i<$browsersqnty;$i++){
echo "<option value='$browservalue[$i]'>$browser[$i]</option>";
}
?></select>