我的数据库结构如下:
UserID (Primary Key)
Username
FirstName
SecondName
Email
我计划允许用户查询此数据库并添加其他用户,以便可以运行算法来选择所有这些用户的空闲时间并返回可用于会议的时间。
所以,首先,我需要建立一个用户列表。这样做的最佳做法是什么?我假设每次找到用户时我都会创建一个cookie并将其添加到客户端会话中?我怎么能这样做?
到目前为止我的代码如下:
<script type="text/javascript">
$(function(){
$('#username').autocomplete({source:'getProducts'});
});
</script>
@{
if (IsPost) {
var db = Database.Open("mPlan");
var term = Request.Form["username"];
var sql = "SELECT * from Users where Username = @0 OR FirstName = @0 OR SecondName = @0"; //this is not very good
var result = db.Query(sql, term);
HttpCookie cookie = Request.Cookies.Get("MPUsersToMeet");
if(cookie == null) {
//assuming I need to create a new cookie
cookie = new HttpCookie("MPUsersToMeet");
} else {
//cookie.Add();?
}
}
}
<form id="form" name="form" method="post" action="">
<h1>Organize your meeting!</h1>
<p>Please give us the details of your meeting.</p>
<label>Who do you want to add to your meeting?
<span class="small">Add your first name, separate by commas.</span>
</label>
<label for="username">Enter name : </label>
<input type="text" name="username" id="username" />
<button type="submit">Add</button>
<div class="spacer"></div>
</form>
这里最好的做法是什么?我需要查询数据库并在客户端存储用户列表,然后在屏幕上呈现这些用户详细信息。
答案 0 :(得分:0)
您必须确定用户ID列表是应该在服务器端还是客户端构建。
如果是内置服务器端,则必须将每个用户ID发布到服务器。对于此解决方案,必须为每个添加的用户重新加载页面。我会通过使用带有隐藏用户ID列表的html表单标记来解决这个问题。
如果您采用客户端方法并使用javascript实现此方法,则可以构建用户ID列表,并且当添加所有用户时,可以将其发布到服务器。在Javascript中,您可以使用数组来存储多个用户,因此不需要使用cookie。选择所有用户后,可以通过AJAX请求或普通POST将阵列发送到服务器。