JQuery:使用基于主选择选项的php填充辅助选择选项

时间:2013-10-18 12:26:51

标签: jquery select html-select

我要做的是使用基于用户主要输入的php和数据库填充辅助选择选项,使用JQuery。如果选择了狗,那就是狗品种,猫 - 猫品种等等。

主要输入

<select id="animal" name="animal">
    <option value="dogs" <?php if ($animaltype == 'dogs') echo 'selected'; ?>>Dogs</option>
    <option value="cats" <?php if ($animaltype == 'cats') echo 'selected'; ?>>Cats</option>
</select>

JQuery代码

    $('select#animal').change(function() {
       var animal = $("select option:selected").attr('value');
       $('select#breed').load(animal);
       alert(animal);
    })

我添加了警报(动物),以确保它正在调整它所做的正确值,狗,猫,马......这是以数据库表名为目标。我想要实现的是更改mysql查询以获取该值。例如,"SELECT breed FROM animal"动物就是jquery返回的东西。

<select id="breed" name="breed">
            <?php 
                $query = "SELECT breed, url FROM {$animaltype}";
                $results = mysql_query($query);             

                while($breed = mysql_fetch_assoc($results)) {
                    echo '<option value="'. $breed['url'] .'">'. $breed['breed'] .'</option>';
                }
            ?>
        </select>

我猜我需要一个$ .post,在jquery脚本中,将请求发布到该php页面,然后将值分配给select查询中的$ animaltype?完全是jquery / php的新手,所以对我很轻松;)希望我已经解释得足以理解。谢谢!

2 个答案:

答案 0 :(得分:0)

您可以这样做:

<script type="text/javascript">
$('select#animal').change(function() {
       var animal = $("select option:selected").attr('value');
       $.ajax({
        type: "POST",
        url: "yourpage.php",
        data: { animal: animal  }
    });
    });

     var updateAnimal = function(url, breed){
        //use url and breed variables here however you want, e.g
    $('.someselectbox').append('<option value="'+url+'">'+breed+'</option>');
}

</script>

And then in your php


<?php
if(isset($_POST['animal']))
{
    $animal = $_POST['animal'];


    $query = "SELECT breed, url FROM $animal}";
    $results = mysql_query($query);             

    while($breed = mysql_fetch_assoc($results)) {
        echo echo '<script type="text/javascript">
                 updateAnimal('.$breed['url'].', '.$breed['breed'].');
              </script>';

    }
}
?>

更好地了解您想要做的事情。

答案 1 :(得分:0)

第1部分 你是渲染你的页面,必须通过php填充初始选项和SELECT的默认值id =“animal”和SELECT与id =“breed”。这部分是通过PHP执行的

第2部分 用户在SELECT中选择id =“animal”的选项,你必须执行AJAX请求(通过你可以使用.get而不是.post的方式)来获取带有id =“breed”的SELECT的JSON数据数组。这部分是通过JQuery执行的。

第3部分 查询数据库并输出JSON数组。这部分是通过PHP执行的

第4部分 AJAX请求的回调函数从服务器接收响应,并使用id =“breed”的SELECT呈现选项,并选择默认选项。这部分是通过JQuery执行的。