我的表单中有2个元素。当我选择第一个选项时,我想改变第二个选项。
例如,我的第一个select元素包含teams,第二个元素包含members。数据包含在MySQL数据库中。每当我选择一个团队时,我希望第二个select元素的选项只显示所选团队的成员。
我不知道这是否可以使用PHP或使用javascript完成。如果你能给我展示一段可以在这种情况下工作的代码,那就太好了。
谢谢,保罗
您需要Javascript来完成此操作,因为更新网页的处理是在浏览器上进行的。当用户选择球队时,需要对PHP脚本进行Ajax调用以获取详细信息。
有许多方法可以做到这一点,哪种方法最好取决于您的能力。
正如其他人所说的那样,最好的方法是设置一些Ajax功能来联系一个单独的php脚本,并为它提供第一个下拉列表的值,它将从中返回应该放入第二个下拉列表的列表。然后,原始页面上的javascript/ajax代码将执行实际处理,将脚本提供的数据加载到下拉列表中。因为听起来你对javascript领域有点陌生,用Ajax做事情可能有点太跳跃了。您可以在没有Ajax的情况下解决这个问题,方法是在PHP编译页面时用从MySQL加载的值填充javascript数组。然后,当第一个下拉列表被更改时,您可以用来自相应数组的值填充第二个下拉列表。
第二种方法并不理想(主要是因为它意味着你加载了很多可能永远不会用到的东西),但是在你学习的过程中它会更容易理解。另外一个好处是,它的执行速度比Ajax解决方案略快,因为它不必产生从服务器检索数据的传输开销。
JavaScript不能直接从浏览器访问数据库。您需要一些服务器端脚本,例如PHP。
Ajax是您的问题的解决方案。Ajax允许您轻松、快速地检索信息,而无需刷新页面。您可以创建一个事件,通过Ajax将信息发送到php文件(您将在其中处理所有内容)然后返回结果并放入select语句
只是一个快速的演示
<select id = "select1">
<option value = "1"></option>
...
</select>
<select id = "select2">
</select>
然后使用javascript(我喜欢jquery做ajax的方式):
$('#select1').change(function(){
var sendmeover = $('#select1').val();
$.post("yourphpscript.php",{
sendingthiswithpost: sendmeover
},
//and here is the responce
function(data){
$('#select2').html(''+data+'');
});
})//end select change
然后你的PHP (yourphpscript.php):
<?php
$variablesent = $_REQUEST['sendingthiswithpost'];
//here is where you would run an sql query and ech your results
echo $variablesent
?>
让我知道,如果我错过了什么,我会修复它,这做得很简单。注意:您需要在php
<option>
标记。