Javascript / PHP / MySQL根据另一个</select>元素的选定选项更改<select>选项

时间:2013-04-11 17:46:50

标签: php javascript jquery mysql

我的表单中有2个元素。每当我在第一个选项中选择一个选项时,我想更改第二个选项。

例如,我的第一个select元素包含团队,第二个元素包含成员。数据包含在MySQL数据库中。每当我选择一个团队时,我希望第二个选择元素的选项只显示所选团队的成员。

我不知道这是否可以仅使用PHP或使用javascript来完成。如果您能向我展示一段可以在这种情况下工作的代码,那就太棒了。

谢谢, -Paul

5 个答案:

答案 0 :(得分:1)

您需要使用Javascript来执行此操作,因为更新网页的处理在浏览器上。当用户选择团队时,需要对PHP脚本进行Ajax调用以获取详细信息。

答案 1 :(得分:0)

JavaScript无法直接从浏览器访问数据库。您需要一些服务器端脚本,例如PHP。

答案 2 :(得分:0)

Ajax是您解决问题的方法。 Ajax允许您轻松,快速地检索信息,而无需刷新页面。 您可以创建一个事件,通过Ajax发送您的php文件信息(您将处理所有内容),然后返回结果并输入您的select语句

答案 3 :(得分:0)

有很多方法可以做到这一点,哪种方式最好取决于你的能力。

正如其他人所说的,最好的方法是设置一些Ajax功能来联系一个单独的php脚本,并为它提供第一个下拉列表的值,从中返回应该放入第二个下拉列表的列表。然后,原始页面上的javascript / ajax代码将执行实际处理,以加载脚本提供给下拉列表的数据。

因为听起来你对javascript竞技场来说有点新意,所以用Ajax做事可能有点过分了。你可以在没有Ajax的情况下通过在PHP编译页面时使用从MySQL加载的值填充javascript数组来解决这个问题。然后,当第一个下拉列表更改时,您可以使用相应数组中的值填充第二个下拉列表。

第二种方法并不理想(主要是因为它意味着你要加载许多可能永远不会被使用的东西),但是在你学习的时候会更容易理解。另一个好处是它的执行速度比Ajax解决方案稍快,因为它不必承担从服务器检索数据的传输开销。

答案 4 :(得分:0)

只是一个快速演示

<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>标签