2014-06-09 54 views
-2

我试图创建简单的下拉菜单与数字(0,1,2)作为值。 为了使启动更容易,我将选定的值设置为编号2.没有出现错误, 下拉框存在,但没有显示任何值。我究竟做错了什么。请帮助下拉菜单在OOP php

<?php 
class pulldown { 

    function setName($name)   { $this->name = $name; } // sets name of   
    //select field 

    function setSelected($selected) { $this->setSelected=$selected; } 

    function showSelected() { 

     printf ("<select name='%s'>", $this->name); 

      foreach($this->lookupTable as $key => $val) 
      { 
       if($this->selected == $key){ 
        echo "<option select='selected' value='$key'>$val</option>"; 

       }else { 
        echo "<option value='$key'>$val</option>"; 

       } 

      } 

     echo" </select>"; 

    } 

    private $lookupTable; 
    private $selected; 
    private $name; 

} 

////////////////////////////////////////////////// 

class numbers extends pulldown { 

    function __construct() { 

     $this->setName('numbers'); 
     $this->setSelected("0"); 

     ///this are the numbers available to select 
     $this->lookupTable = Array (
      "0" => "zero", 
      "1" => "one", 
      "2" => "two" 
     ); 
    } 

} 


$mynumbers = new numbers(); 
$mynumbers->setSelected("2"); 

//$myresellers = new myresellers(); 
?> 
<html> 
<form action="pullDown.php" method="post"> 
    <table width="1000" border="0" align="center"> 
    <td> 
    <?php $mynumbers->showSelected(); ?> 
    </td> 
    </table> 
</form> 
+1

'$ this-> setSelected = $ selected; private $ selected;'你在那儿有错误的变量名。 – scragar

回答

1

在设置器中使用了错误的变量。您需要使用selected而不是setSelected。

function setSelected($selected) { $this->selected = $selected; } 
+0

我现在纠正了,但仍然没有运气 – user2815059

+1

我现在看到您使用错误的HTML语法。尝试使用**选择=选择**而不是**选择=选择**。 –

+0

这也没有帮助 – user2815059