从上一个下拉列表中填充下拉列表 - 使用AJAX,PDO,jQuery

时间:2015-12-01 18:29:06

标签: mysql

我是使用PHP和mySQL的新手,所以我完全清楚我可能已经制作了一些非常棒的“菜鸟”。错误。但是,当从上一个下拉列表中选择一个选项时,从mySQL填充我的第二个下拉列表时,我真的很困难。

我已尝试过所有论坛,并尝试过示例脚本,但每次尽管在互联网上尝试不同的示例,我仍然会遇到错误。因此,我希望有人能帮助我。

我试图建立一个小型电影网站,有人可以选择一部电影,然后选择一个日期&时间等等我使用mySQL来填充下拉列表但是当我想填充第二个下拉列表时它会卡住,因为它依赖于第一个选项select。

我尝试过使用AJAX,但无济于事。感谢我可能在这里犯了一些非常新的错误(可能会对变量产生混淆),但如果有人能够解释我错在哪里,我会非常感激。

3 个答案:

答案 0 :(得分:0)

您之前选择国家和城市时遇到的问题

这是做这个技巧的好教程

http://www.php-dev-zone.com/2013/10/country-state-city-dropdown-using-ajax.html

答案 1 :(得分:0)

你在getDates.php

上犯了小错误
<?php
    require("Connect.php");

    $name = (!empty($_REQUEST["name"])) ? trim($_REQUEST["name"]) : "");
    if (!empty($name)) {
        $sql = "SELECT Dates FROM Cinema WHERE name = $name";
        try {
            $stmt = $DB->prepare($sql);
            $stmt->bindValue("tn", trim($name));
            $stmt->execute();
            $results = $stmt->fetchAll();
        } catch (Exception $ex) {
            echo($ex->getMessage());
        }
        if (count($results) > 0) {
        ?>
        <label>Dates: 
            <select name="Dates">
                <?php foreach ($results as $rs) { ?>
                <option value="<?php echo $rs["Dates"]; ?></option>
                <?php } ?>
            </select>
        </label>
        <?php
        } 
    }
?>

请试试并反馈

答案 2 :(得分:0)

的index.php

<?php
    require Connect.php;
?>
<!DOCTYPE html>
<html>
<head>
    <title>Films for Family!!</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script type="text/javascript"> 
    function Datesforfilms(sel) {
        var name = sel.options[sel.selectedIndex].value;
        $("#output1").html("");
        $.ajax({
            type: "POST",
            url: "getDates.php",
            data: "name=" + name,
            cache: false,
            success: function(html) {
                $("#output1").html(html);;
            }
        });
    }
    </script>
</head>
<body>
    <div class="welcome">
        <h1>Films for Family</h1>
    </div>

    <div class="SelectFilm">

        <h3> Step 1: </h3>
        <p> *Select a film*</p>       

        <form name="Filmform" method="get">
            <select name="Select a Film" onChange="Datesforfilms(this);">
                <option value="0">Select a Film</option>
                <?php
                $sql = "SELECT name FROM company";
                $handle = $conn->prepare($sql);
                $handle->execute(array($sql));
                $res = $handle->fetchAll();
                foreach($res as $movie) { ?>
                    <option value="<?=$movie['name']?>"><?=$movie['name']?></option>
                <?php } ?>
            </select>
            <div id="output1"></div>    
        </form>    
    </div>     
</body>
</html>

getDates.php

<?php
require("Connect.php");

$name = (!empty($_POST["name"]) ? trim($_POST["name"]) : "");
if (!empty($name)) {
    $sql = "SELECT Dates FROM Cinema WHERE name = $name";
    try {
        $stmt = $DB->prepare($sql);
        $stmt->bindValue("tn", trim($name));
        $stmt->execute();
        $results = $stmt->fetchAll();
    } catch (Exception $ex) {
        echo($ex->getMessage());
    }
    if (count($results) > 0) {
?>
        <label>Dates: 
            <select name="Dates">
                <?php foreach ($results as $rs) { ?>
                    <option value="<?php echo $rs["Dates"]; ?>"><?php echo $rs["Dates"]; ?></option>
                <?php } ?>
            </select>
        </label>
    <? } ?>
<? } ?>