Jquery:获取多个<select>下拉列表</select>的值

时间:2011-01-16 05:11:49

标签: php jquery

我从db-table中获取用户记录,如

<?php $row=1; ?>
<select id="status<?php echo $row; ?>" name="status<?php echo $row; ?>">
    <option value="0">Active</option>
    <option value="1">Block</option>
</select>
<?php $row++; ?>

----------------------------------------
  Name                    Status
----------------------------------------
  Abc                     Active
  Def                     Block
  Ghi                     Active
  Jkl                     Block
----------------------------------------

其中status是下拉状态,每个用户有两个状态,如果我想更改任何用户的状态,那么我从该下拉列表中选择一个选项,同时状态必须在db-table中更新。 为此,我编码:

for(var r=1; r<=4; r++){
    $("status").each(function() {
        var sld = $("#status").val();
        alert(sld);
        $.ajax({
            type: "POST",
            url: "response.php",
            data: "sld="+sld,
            success: function(msg){
                alert(msg); // this is the response
            }
        });
    });
}

但是for循环不会为每个下拉列表创建脚本....

3 个答案:

答案 0 :(得分:0)

$('status')会选择节点名称为status的元素。你有吗?或者你的意思是$('.status')

答案 1 :(得分:0)

您需要删除for循环,并使用此代码。 我的事件现在是“改变”,它将提交两个变量,“id”和“sld”。然后,您更新您的PHP脚本以检查$ _POST ['id']和$ _POST ['sld'],然后将这些更新到数据库中。

为每个下拉列表添加class =“status”。

$(".status").change(function() {
        var sld = $(this).val();
        alert(sld);
        $.ajax({
            type: "POST",
            url: "response.php",
            data: { "sld": sld, "id":$(this).attr('id').replace('status','') },
            success: function(msg){
                alert(msg); // this is the response
            }
        });
    });

答案 2 :(得分:0)

我认为你有多个具有相同ID的元素,这将是无效的HTML。

为您的选择框添加一个类,然后您可以使用类似的东西。

$("select.status").each(function() {
    var sld = this.value;
    alert(sld);
    $.ajax({
        type: "POST",
        url: "response.php",
        data: "sld="+sld,
        success: function(msg){
            alert(msg); // this is the response
        }
    });
});

此外,我没有在示例中找到任何for循环的使用。