(新手帖子)PHP下拉列表,用于将下拉列表中的值插入数据库

时间:2012-05-06 01:43:50

标签: php

有人可以帮我解决这个问题,对不起代码中的语言。我试图这样做,当有人选择一个选项并点击它将插入我的数据库的按钮时,我已经检查了名称是否都是正确的等等,并且它们是。

注意:我没有尝试从我的数据库中选择一个值到我的下拉列表中,只是为了插入值,就像一个帐户的申请表一样。

注意:如果有人问了同样的问题,那就太棒了!如果您可以在评论中粘贴链接,谢谢。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select name="room" value="options">
<option value="Einstaklings" name="102">Alment Einstaklings Herbergi</option>
<option value="Tveggja" name="102">Alment Tveggja manna Herbergi</option>
<option value="Business" name="201">Business Herbergi</option>
<option value="Fjolskyldu" name="301">Fjölskyldu Herbergi</option>
<option value="Svitu" name="401">Svítu</option>
</SELECT>
<input type="submit" value="Senda"/>
</form>

<?php

$db_tengi=@mysql_connect('localhost', 'root', '');
    if (!$db_tengi) {
        exit('<p>Cant Connect</p>');
    };

if(!@mysql_select_db('hotel')){
    exit('<p>Cant Connect</p>');
};



$room = array(
'Einstaklings' => 101,
'Tveggja' =>102,
'Business' => 201,
'Fjolskyldu' =>301,
'Svítu' => 401
 );

function generateSelect($name = '', $options = array()) {
$html = '<select name="'.$name.'">';
foreach ($options as $option => $value) {
    $html .= '<option value='.$value.'>'.$option.'</option>';
}
$html .= '</select>';
return $html;
 }
 $html = generateSelect('room', $room);


 if (
    $sql = "INSERT INTO `registration` SET 
    room_ID_FK='$room'"
    )
    if(@mysql_query($sql)){
        echo '<p> Insert Complete</p>';
    }
    else{
        echo '<p> Error Insert failed.' . mysql_error() . '</p>'; 
    };


  ?>

2 个答案:

答案 0 :(得分:1)

1)在你的选择中不要给每个选项命名

<select name="room" value="options">
<option value="Einstaklings">Alment Einstaklings Herbergi</option>
<option value="Tveggja">Alment Tveggja manna Herbergi</option>
<option value="Business">Business Herbergi</option>
<option value="Fjolskyldu">Fjölskyldu Herbergi</option>
<option value="Svitu">Svítu</option>
</SELECT>

2)你需要收到你发布的数据,它将是超全球数组$ _POST

<?php 
   $room = $_POST['room'];
?>

3)在连接到数据库之后,您需要将此数据写入数据库

答案 1 :(得分:1)

不确定我是否已经得到它,但是我再也不读冰岛语(或其他任何东西),但看起来你每次在你的函数中声明一个新数组而不是使用$ room?

尝试更换:

function generateSelect($name = '', $options = array()) {

with:

function generateSelect($name, $options) {