-1

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

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

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

谢谢,-保罗

4

5 回答 5

1

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

于 2013-04-11T17:50:34.343 回答
0

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

于 2013-04-11T17:51:05.120 回答
0

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

于 2013-04-11T17:53:44.093 回答
0

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

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

因为听起来您对 javascript 领域有点陌生,所以使用 Ajax 做事可能有点过头了。您可以在没有 Ajax 的情况下解决此问题,方法是使用您在 PHP 编译页面时从 MySQL 加载的值填充 javascript 数组。然后,当第一个下拉列表更改时,您可以使用相应数组中的值填充第二个下拉列表。

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

于 2013-04-11T17:57:30.980 回答
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
?>

让我知道我是否遗漏了任何东西并且无法修复它,这很简单。注意:您需要<option>在 php 中构建标签

于 2013-04-11T18:21:44.773 回答