2017-11-09 24 views
1

ドロップダウンから値を取得しようとしていますが、最初のドロップダウンだけの値を取得しています。各レコードと共にデータベースから来る複数のレコードがあり、ドロップダウンメニューがあり、そこに製品のステータスが記載されています。jQueryドロップダウンからの値の選択

1行目のドロップダウンの値が増えています。ここに私のコードは次のとおりです。

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> 
+0

ヴァルを選択入力の選択オプションを返し、常に1つの結果しか返しません。選択された属性を持つオプションがない場合は、最初のオプションの値を持ちます –

答えて

2

です。

それは

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(); 

サイドノート:カスタム属性は、常にで始まる必要があります例えば、data- prefixdata-myidmyidではありません。 jQueryので次に

<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> 

0

あなたがそうのように、IDに基づいて、すべてのドロップダウンに固有myidを与えることができます()

$(".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); 
     } 
    }); 
}); 
関連する問題