我要做的是使用基于用户主要输入的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的新手,所以对我很轻松;)希望我已经解释得足以理解。谢谢!
答案 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执行的。