2016-11-29 16 views
0

これは私の最初の質問ですので、ルール違反があれば許してください。これは具体的にはjqueryに関連する質問であり、jqueryに関する知識は限られています。ループ内で動的に作成されたjqueryを使用してフォームから選択オプション値を取得

FORループで動的に作成されたフォームからSELECT要素の値を取得しようとしています。問題は、私が最初のフォームの値を取得できる間、次のフォームのセットに対して同じ値を戻していることです。

たとえば、FORループを使用して、複数の非表示の入力フィールド、1つの選択フィールド(値は1,2,3などの静的な値)と送信ボタンを含む5つの動的フォームを生成しています。 jquery attr()関数を使用して、異なるフォームの隠された入力フィールドの値を取得する際に問題はありません。しかし、SELECTフィールドにこのattr()関数を適用すると、最初のフォームでのみ機能します。後続のすべてのフォームは、最初のフォームと同じ値を返します。

var value= $('option:selected', '.select-class').attr('data-value'); 

ループ内で複数のフォームのSELECTフィールドの値を取得する方法を教えてください。

ありがとうございました

編集:以下、コード全体を貼り付けました。それは元のものから変更されていますが、問題はまだ同じです。アンカータグ(ボタンの代わりに)とwhileループ(ループの代わりに)を使用してデータを送信していることがわかりました。コードを見てください。

私は、次のようにwhileループ内の各アンカータグのデータ属性の値を取得することができていますjqueryの使用
<?php while($fetch=$query->fetch()) { ?> 
     <select class="form-control sel_qty" name="product_qty" >            
      <option value="1" data-qty="1">1</option> 
      <option value="2" data-qty="2">2</option> 
      <option value="3" data-qty="3">3</option> 
      <option value="4" data-qty="4">4</option> 
      <option value="5" data-qty="5">5</option>            
     </select> 
     <a href='#' class="btn btn-primary cart_submit" 
      data-code="<?php echo $fetch['product_code']; ?>" 
      data-title="<?php echo $fetch['title']; ?>" 
      data-price="<?php echo $fetch['price']; ?>" 
      data-url="<?php echo $fetch['url']; ?>" > 
     Submit 
     </a> 
<?php } ?> 

    var product_code= $(this).attr("data-code"); 
        var product_title= $(this).attr("data-title"); 
        var product_price= $(this).attr("data-price"); 
        var product_url= $(this).attr("data-url"); 

しかし、どのように、私は内部の各select要素の値を取得するかをwhileループ。私は、最初のselect要素だけの値を取得することができ、後続の要素は取得できません。

    var value= $('option:selected', '.sel_qty').attr('data-qty'); 

この上記のコードは、最初の値を取得しているあなたが投稿したコードは、あなたのループ内のコードであれば、あなたが提供した情報及び少量のコードに基づいてループ

+0

: はないとあなたのような何かを行うことができ、あなたは何をしているか知っています。フォーム上のループの場合。 – Dhwani

+0

あなたはコードを表示できますか(フル) – anshuVersatile

答えて

0

で利用可能な要素を選択、あなたの問題は動的に作成されたフォームではありませんが、使用しているループ内の参照は相対ではありません。あなたはすべてのオプションの値を取得するために、再びループを作成する必要があり

$('form').each(function(){ 
    var form = $(this); 
    var value= form.find('option:selected', '.select-class').attr('data-value'); 
    ... 
}) 
関連する問題