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


(newbie post) PHP dropdown list, to insert a value from a dropdown list into database

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

注意:我不会尝试从我的数据库中选择一个值,而是在我的下拉列表中插入该值,就像帐户的申请表一样。

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

<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>'; 
    };

  ?>

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) 在连接到数据库

后,您需要将此数据写入数据库

不确定我明白了,但话又说回来,我不读冰岛语(或其他什么),但看起来你每次都在函数中声明一个新数组,而不是使用 $room ?

尝试替换 :

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

跟:

function generateSelect($name, $options) {