多个 html select 和 jquery ajax

发布于 2024-10-02 11:43:14 字数 1713 浏览 2 评论 0原文

我想创建一个多个 <选择>使用ajax和jquery。

首先选择(c1)工作正常。当我点击它时,它会返回另一个选择(c2)。但是当我单击第二个选择(c2)时,我可以获得第三个选择(c3)。

HTML:

<table><tr><td id="cat1div">
<select name="c1">
<option value="">---</option>
<option value="1">Auto</select>
<option value="2">Moto</select>
</td>
<td id="cat2div"></td>
<td id="cat3div"></td>
</tr></table>

jquery:

$(document).ready(function() {
$("select[name=c1]").change(function () {
var id = $("select[name=c1] option:selected").val();

$.ajax({
            url: "category.php?cat=2&id=" + id, 
            cache: false,
            success: function (html) {
                $('#cat2div').html(html);
            }
        });

}); 



$("select[name=c2]").change(function () {
alert('asad');
var id = $("select[name=c2] option:selected").val();

$.ajax({
            url: "category.php?cat=3&id=" + id, 
            cache: false,
            success: function (html) {
                $('#cat3div select').html(html);
            }
        });

}); 

});

PHP:

<?if($_GET['cat']==2){?>
<select name="c2">
<option value="">---</option>
<?foreach($cat2[$_GET['id']] as $ca => $key){
?><option value="<?=$ca;?>"><?=$key;?><?}?>
</select>
<?}elseif($_GET['cat']==3){?>
<select name="c3">
<option value="">---</option>
<?foreach($cat3[$_GET['id']] as $ca => $key){
?><option value="<?=$ca;?>"><?=$key;?><?}?>
</select>
<?

抱歉我的英语不好,感谢您的帮助

I wanna create a multiple < select > with ajax and jquery.

First select(c1) is working properly. When I click on it returns another select(c2). But when I clicked on second select(c2) I can get third select(c3).

HTML:

<table><tr><td id="cat1div">
<select name="c1">
<option value="">---</option>
<option value="1">Auto</select>
<option value="2">Moto</select>
</td>
<td id="cat2div"></td>
<td id="cat3div"></td>
</tr></table>

jquery:

$(document).ready(function() {
$("select[name=c1]").change(function () {
var id = $("select[name=c1] option:selected").val();

$.ajax({
            url: "category.php?cat=2&id=" + id, 
            cache: false,
            success: function (html) {
                $('#cat2div').html(html);
            }
        });

}); 



$("select[name=c2]").change(function () {
alert('asad');
var id = $("select[name=c2] option:selected").val();

$.ajax({
            url: "category.php?cat=3&id=" + id, 
            cache: false,
            success: function (html) {
                $('#cat3div select').html(html);
            }
        });

}); 

});

PHP:

<?if($_GET['cat']==2){?>
<select name="c2">
<option value="">---</option>
<?foreach($cat2[$_GET['id']] as $ca => $key){
?><option value="<?=$ca;?>"><?=$key;?><?}?>
</select>
<?}elseif($_GET['cat']==3){?>
<select name="c3">
<option value="">---</option>
<?foreach($cat3[$_GET['id']] as $ca => $key){
?><option value="<?=$ca;?>"><?=$key;?><?}?>
</select>
<?

Sorry for my English and thanks for any help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忘羡 2024-10-09 11:43:14

这应该可以解决问题:

$(document).ready(function() {
  $("select[name=c1]").change(function () {
    $.ajax({
      url: "category.php?cat=2&id=" + $(this).val(), 
      cache: false,
      success: function (html) {
        $('#cat2div').html(html).find("select[name=c2]").change(function () {
          $.ajax({
            url: "category.php?cat=3&id=" + $(this).val(), 
            cache: false,
            success: function (html) {
              $('#cat3div select').html(html);
            }
          }); 
        });
      }
    });
  }); 
});

目前,当 $("select[name=c2]") 运行时,该元素还不存在......所以没有什么可以绑定 change< /code> 处理程序...一旦元素存在,您就需要执行此操作,就像我上面所做的那样。

This should do the trick:

$(document).ready(function() {
  $("select[name=c1]").change(function () {
    $.ajax({
      url: "category.php?cat=2&id=" + $(this).val(), 
      cache: false,
      success: function (html) {
        $('#cat2div').html(html).find("select[name=c2]").change(function () {
          $.ajax({
            url: "category.php?cat=3&id=" + $(this).val(), 
            cache: false,
            success: function (html) {
              $('#cat3div select').html(html);
            }
          }); 
        });
      }
    });
  }); 
});

Currently, when $("select[name=c2]") runs, the element isn't there yet...so there's nothing to bind a change handler to...you need to do this once the element is there, like I have above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文