我刚刚开始构建一个调查应用程序,其中包含不同类型的答案(例如复选框,单选按钮,是/否等)。
我的问题是,我不知道如何显示一些问题的答案,如"谁是你最喜欢的演员?"我考虑过自动完成或下拉框(例如按字母顺序),用户可以从中选择他们最喜欢的演员,但我不知道如何做到这一点。我搜索了类似的问题,如如何创建下拉菜单[关闭],创建下拉菜单,PHP动态下拉菜单,我读了这个教程,但我仍然很困惑如何使这种类型的答案(也因为我不知道我怎么能在我的数据库中设计它们)。
为了设计我的数据库,我想创建4个表:
Questions (questionId, questionText, questionType)
Answers (answerId, questionId, answer)
UsersAnswer (userAnswerId, AnswerId, UserId, userAnswer)
Users (userId, userName,…)
你需要jquery和它的尺寸:
放置在页面顶部:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dimensions.js"></script>
<script type="text/javascript" src="autocomplete.js"></script>
现在你需要一个函数来调用…
<script type="text/javascript">
$(function(){ setAutoComplete("searchField", "results", "autocomplete.php?part="); });
</script>
现在输入(客户端):
<label>Actors: </label><input type="text" id="searchField" name="searchField">
PHP(服务器端):$link = mysql_connect('localhost', 'dbUsername', 'dbPassword');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
if (!mysql_select_db("database")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$result = mysql_query("SELECT name FROM sks_color");
while ($row = mysql_fetch_assoc($result)) {
$colors[]=$row['name'];
}
mysql_free_result($result);
mysql_close($link); // check the parameter
if(isset($_GET['part']) and $_GET['part'] != '')
{
// initialize the results array
$results = array(); // search colors
foreach($colors as $color)
{
// if it starts with 'part' add to results
if( strpos($color, $_GET['part']) === 0 ){
$results[] = $color;
}
} // return the array as json with PHP 5.2
echo json_encode($results);
}
请记住,这是返回一个JSON对象…
链接:
- AJAX自动完成PHP 教程