我想创建一个注册表单,它的值将存储在数据库(mysql)中。因为我希望数据是正确的格式(纽约,而不是纽约,当我要求城市),我正在考虑限制选项使用下拉列表。例如,当用户选择作为一个国家:英国,第二个选择缩小到英国国内的城市,并移除世界其他城市。
我可以只使用PHP/HTML/MYSQL知识来完成这个任务吗?还是我需要了解Javascript/Jquery等等?
提前谢谢。
发布于 2014-01-11 23:04:58
最好的方法是使用jQuery (javascript)来管理与服务器的交互(这个过程称为AJAX)。
首先,jQuery只是一个javascript库,它使使用javascript变得非常容易。这里是一篇有趣的文章,讲述了为什么jQuery是绝对必要的。然而,使用jQuery的两个主要原因是:(1)跨浏览器是为您所做的,(2)较少输入。以下是一些学习jQuery的免费资源:
接下来,在使用jQuery时,必须首先加载jQuery库。在此之后,您可以键入jQuery命令而不是javascript,这样做就容易得多了。像这样在头标签中加载库:
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>最后,查看此处,根据Select1的结果填充Select2:
发布于 2014-01-11 19:10:27
您可以只使用PHP/HTML/MYSQL来完成它,但是,它会影响用户体验,因为您必须这样做:
1)呈现带有国家下拉菜单的表格。获取用户提交并发送回服务器(通过POST、PUT、GET)
2)接收用户输入,然后在第二个下拉菜单中显示过滤后的城市。现在,用户可以选择城市和张贴到您的服务器。
发布于 2014-01-11 19:13:04
你可以用PHP来做,但不能用动态的。人们必须先选择英国,然后按下提交,然后继续选择一个城市。
但是,您可以动态地执行它。您可以使用Ajax正确地执行此操作:
HTML:
<select name="country" id="country" onchange="getCities(this.value)">
<option>Brazil</option>
<option>United Kingdom</option>
</select>
<select name="city" id="city">
<option disabled selected>Please select a country first</option
</select>Javascript:
function getCities(str) {
if (str=="") {
document.getElementById("city").innerHTML="";
return;
} if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} xmlhttp.onreadystatechange=function() {
if(xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("hat").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getcities.php?q="+str,true);
xmlhttp.send();
}在getcities.php中,您将得到所有相关城市,并将它们输出为<option>city_name</option。
https://stackoverflow.com/questions/21066602
复制相似问题