Php 更改第一个框的选定值后,填充第二个和第三个选择框

Php 更改第一个框的选定值后,填充第二个和第三个选择框,php,jquery,Php,Jquery,有三个选择框,首先禁用设备选择和探测选择。当我从第一个选择框中选择值时,customer_sel我使用$.post填充设备_sel。我的问题是,当我在设备选择中选择值,然后prob_sel填充时,我应该做什么相同的事情。我想当我尝试填充prob_sel时,在$.post过程中我没有看到一些错误。当我更改或选择设备_sel中的第一次值时,prob_sel将保持禁用开始,并且不会发生任何事情 有人能发现错误或打字错误吗?他花了一个小时试图解决这个问题,却什么也找不到 我的javascript: &l

有三个选择框,首先禁用设备选择和探测选择。当我从第一个选择框中选择值时,customer_sel我使用$.post填充设备_sel。我的问题是,当我在设备选择中选择值,然后prob_sel填充时,我应该做什么相同的事情。我想当我尝试填充prob_sel时,在$.post过程中我没有看到一些错误。当我更改或选择设备_sel中的第一次值时,prob_sel将保持禁用开始,并且不会发生任何事情

有人能发现错误或打字错误吗?他花了一个小时试图解决这个问题,却什么也找不到

我的javascript:

<script type="text/javascript">
    $(document).ready(function()
    {
        $('#device_sel').attr('disabled', true);
        $('#prob_sel').attr('disabled', true);


        $('#customer_sel').change(function()
        {
            var cid = $('#customer_sel').attr("value");
            $.post("get_customers_devices.php", {cid:cid}, function(data)
            {
                $('#device_sel').attr('disabled', false);
                $('#device_sel').html(data);
            });
        });

        $('#device_sel').change(function()
        {
            var did = $('#device_sel').attr("value");
            jQuery.post("get_device_problems.php", {did:did}, function(data)
            {
                $('#prob_sel').attr('disabled', false);
                $('#prob_sel').html(data);
            });
        });

    });
</script>
最后,FillDeviceSelect和FillProblemSelect:

function FillDeviceSelect($data)
    {
        $device = '<option value="0">Select option</option>';
        foreach($data as $row)
        {
            $device.= '<option value="'. $row['did'] .'">'. $row['device_name'] .'</option>';
        }

        return $device;
    }

function FillProblemSelect($data)
    {
        $problem = '<option value="0">Select option</option>';
        foreach($data as $row)
        {
            $problem .= '<option value="' . $row['pid']  .'">' .  $row['problem'] .'</option>';
        }

        return $problem;
    }

解决了。非常非常严重的错误,设备问题与我的页面不在同一个文件夹中,但我确实知道该文件保存在另一个文件夹中,这就是为什么我的post call无法正常工作的原因…

我不肯定,但我想这是因为您对设备选择有一个更改影响,然后,当您使用customer_sel的onChange调用填充它时,您将更改它的默认值。尝试从$'device\u sel.changefunction解除第二次更改的绑定,看看是否存在相同的问题。如果我完全误解了你的问题,我道歉

 <?php

include "FillSelect.class.php";

echo   $fill- >FillProblemSelect($getdata->GetDeviceProblems($_POST['did'])) ;

?>
function GetCustomersDevice($cid)
    {
        try
         {
            $db = new PDO('sqlite:base.db') ;
            $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

            $pquery = $db->prepare("SELECT * FROM Devices WHERE cid=:cid");
            $data = array("cid"=>$cid);
            $pquery -> execute($data) ;

            $rows = $pquery->fetchAll();

            return $rows;
        }
        catch(PDOException $e)
        {
            echo "Failure: " . $e->getMessage();            
        }

        $db = NULL;
    }

    function GetDeviceProblems($did)
    {
        try
         {

            $db = new PDO('sqlite:base.db') ;
            $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

            $pquery = $db->prepare("SELECT * FROM Problems p, Devices d WHERE d.did=:did");
            $data = array("did"=>$did);
            $pquery -> execute($data) ;

            $rows = $pquery->fetchAll();

            return $rows;
        }
        catch(PDOException $e)
        {
            echo "Failure: " . $e->getMessage();            
        }

        $db = NULL;
    }
function FillDeviceSelect($data)
    {
        $device = '<option value="0">Select option</option>';
        foreach($data as $row)
        {
            $device.= '<option value="'. $row['did'] .'">'. $row['device_name'] .'</option>';
        }

        return $device;
    }

function FillProblemSelect($data)
    {
        $problem = '<option value="0">Select option</option>';
        foreach($data as $row)
        {
            $problem .= '<option value="' . $row['pid']  .'">' .  $row['problem'] .'</option>';
        }

        return $problem;
    }