有人可以帮我解决这个问题,对不起代码中的语言。我试图这样做,当有人选择一个选项并点击它将插入我的数据库的按钮时,我已经检查了名称是否都是正确的等等,并且它们是。
注意:我没有尝试从我的数据库中选择一个值到我的下拉列表中,只是为了插入值,就像一个帐户的申请表一样。
注意:如果有人问了同样的问题,那就太棒了!如果您可以在评论中粘贴链接,谢谢。
<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>';
};
?>
答案 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) {