Php 在注册表中选择下拉选项
我正在创建一个带有下拉选择选项的注册表表单。 登记表格如下: 姓名: 电邮: 密码: 学校:(下拉选项列表) 我已经建立了两个表格,一个叫做“用户”,另一个叫做“学校”。 在我的“用户”表中,列是Php 在注册表中选择下拉选项,php,mysql,Php,Mysql,我正在创建一个带有下拉选择选项的注册表表单。 登记表格如下: 姓名: 电邮: 密码: 学校:(下拉选项列表) 我已经建立了两个表格,一个叫做“用户”,另一个叫做“学校”。 在我的“用户”表中,列是“id”(int(11)),“email”(varchar(255),“name”(varchar(64))和“school”(varchar(64))。 在我的“schools”表中,列是“id”(int(11))、“users_id”(int(11))和“school_id”(int(11))。我不
“id”(int(11))
,“email”(varchar(255)
,“name”(varchar(64)
)和“school”(varchar(64))。
在我的“schools”表中,列是“id”(int(11))、“users_id”(int(11))和“school_id”(int(11))。我不确定这个表的设置是否正确,所以请告诉我是否有更好的设置方法。我制作了“school_id”,因为我以后还会有一个搜索系统,用户可以在其中搜索特定学校的人
到目前为止,my register.html的表单部分:
<form action="register.php" method="post">
<div class="field">
<label for="email">Email:</label>
<input type="email" id="email" value="" autocomplete="on" action="" />
</div>
<div class="field">
<label for="password">Password:</label><br />
<input type="password" id="password" autocomplete="off" />
</div>
<div class="field">
<label for="name">Name:</label><br />
<input type="text" id="name" action="" />
</div>
<div class="field">
<label for="school">School:</label>
<select id="school" size="1">
<option value="a">Apple School</option>
<option value="b">Banana School</option>
<option value="c">Carrot School</option>
</select>
</div>
<input name="Register" type="submit" id="register" value="" />
</form>
电邮:
密码:
名称:
学校:
苹果学校
香蕉学校
胡萝卜学校
和my register.php:
<?php
require_once 'core/init.php';
if(Input::exists()) {
if(Token::check(Input::get('token'))) {
$validate = new Validate();
$validation = $validate->check($_POST, array(
'email' => array(
'required' => true,
'min' => 2,
'max' => 255,
'unique' => 'users'
),
'password' => array(
'required' => true,
'min' => 6
),
'name' => array(
'required' => true,
'min' => 2,
'max' => 50
),
//I don't know how to put the school drop down in here)
));
if($validation->passed()) {
$user = new User();
$salt = Hash::salt(32);
try {
$user->create(array(
'email' => Input::get('email'),
'password' => Hash::make(Input::get('password'), $salt),
'salt' => $salt,
'name' => Input::get('name'),
'school' => Input::get('school'),
'joined' => date('Y-m-d H:i:s'),
));
Session::flash('home', 'You have been registered and can now log in!');
Redirect::to('index.php');
} catch(Exception $e) {
die($e->getMessage());
}
} else {
foreach($validation->errors() as $error) {
echo $error, '<br>';
}
}
}
}?>
我认为您应该更改此格式的表格
用户表
“id”(int(11))
,“email”(varchar(255)
,“name”(varchar(64)
,“school\u id”(int(11))
学校表
“id”(int(11))
,“school\u id”(int(11))”
,“school\u name”(varchar(255))
现在,您可以访问school表,将下拉列表放入代码中。您遇到的错误是什么?它是否在任何框架上运行?没有任何错误,我想问的是如何将下拉选项列表编码到此代码中我是否应该在school表中使用id的自动增量(就像我为用户所做的那样)对于school\u id?1.是的,你应该使school(id自动递增)。2.如果你想给school分配某个特定的id,那么你可以使用school\u id
,否则你可以忽略school\u id
,它显示了“不正确的表定义;只能有一个自动列,并且必须将其定义为键。”"当我尝试自动增加学校id时,我应该怎么做?不,你不需要使其自动增加,你只需要手动填充此值,否则将其删除,并将学校表id
用作用户表中的学校id。你的意思是将其从用户表中删除吗?但是如果我这样做,注册表中的数据将如何添加到其中?