Javascript jQuery从下拉列表中选择值不工作

Javascript jQuery从下拉列表中选择值不工作,javascript,php,jquery,Javascript,Php,Jquery,我试图从下拉列表中获取值,但我仅获取第一个下拉列表的值。数据库中有多个记录,每个记录都有一个下拉菜单,其中提到了产品的状态 我只得到第一行下拉列表的值。这是我的密码: jQuery代码 $(".myBtn").click(function(){ var id=$(this).attr("atr"); var text = $(".hotel[myid='tayyab']").val(); alert(text); $.ajax({ ty

我试图从下拉列表中获取值,但我仅获取第一个下拉列表的值。数据库中有多个记录,每个记录都有一个下拉菜单,其中提到了产品的状态

我只得到第一行下拉列表的值。这是我的密码:

jQuery代码

$(".myBtn").click(function(){  
    var id=$(this).attr("atr");  
    var text = $(".hotel[myid='tayyab']").val();

    alert(text);

    $.ajax({
        type: "POST",
        url: 'updatestatus.php',
        data: {id:id,status:text},
        success: function(data){
            $("#results").html(data);
        }
    });
});
这是我的PHP代码

<?php if(isset($_POST['search'])){
    $con=mysql_connect("localhost","root","");
    $db=mysql_select_db("eshop");
    $id=$_POST['pid'];
    $query=mysql_query("SELECT * FROM userorder WHERE id LIKE '$id%'");

    while($res=mysql_fetch_array($query)){
        $id=$res["id"];
    ?>

    <table class="table table-condensed">
        <thead>
            <tr>
                <th>Firstname</th>
                <th>Lastname</th>
                <th>Email</th>
                <th>Status</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><?php echo $res["id"];?></td>
                <td><?php echo $res["name"];?></td>
                <td><?php echo $res["productname"];?></td>
                <td>
                    <select class="hotel" myid="tayyab" name="ostatus">
                        <option value="cancel">Cancel</option>
                        <option value="underp">underp</option>
                        <option value="deliver">deliver</option>
                    </select>
                    <button atr="<?php echo $id; ?>" class="myBtn">Change Status</button>
                </td>
            </tr>
        </tbody>
    </table>
</div>

我只得到第一行下拉列表的值

因为那是什么

var text = $(".hotel[myid='tayyab']").val();
说要做。您正在对
.hotel[myid='tayyab']
进行全局搜索,然后使用
val
获取第一个匹配的值

相反,您希望找到包含按下的特定按钮的
tr
,然后在该
tr
中搜索
.hotel[myid='tayyab']

var text = $(this).closest("tr").find(".hotel[myid='tayyab']").val();


旁注:自定义属性应始终以a开头,例如,
data myid
,而不是
myid

您可以根据id为每个下拉列表指定唯一的
myid
,如下所示:

<select class="hotel" myid="tayyab_<?php echo $id; ?>" name="ostatus">
  <option value="cancel">Cancel</option>
  <option value="underp">underp</option>
  <option value="deliver">deliver</option>
</select>
val()返回选择输入的选定选项,因此它总是只返回一个结果。如果没有选项具有所选属性,则该选项将具有其第一个选项的值
$(".myBtn").click(function(){

    var id=$(this).attr("atr");  

    var myId = "tayyab_"+id;
    var text = $(".hotel[myid='" + myId + "']").val();

    alert(text);

    $.ajax({
        type: "POST",
        url: 'updatestatus.php',
        data: {id:id,status:text},
        success: function(data){
            $("#results").html(data);
        }
    }); 
});