2011-01-16 17 views
0

の値が、私はのjQuery:複数の<select>ドロップダウン

ステータスは、各ユーザのために、私は変更したい場合は2つのステータスをドロップダウンで
<?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 
---------------------------------------- 

のようにDB-テーブルからユーザーレコードを取得しています入手任意のユーザーのステータスを取得し、そのドロップダウンからオプションを選択すると同時に、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 
      } 
     }); 
    }); 
} 

が、ループは、各ドロップダウンのためのスクリプトを作成しないために....

+0

間違っているようです。まず、2行目の "status"は ".status"にする必要があり、各ドロップダウンにはステータスクラスが必要です。あなたのPHPコードは質問には関係ありません。 – Jason

+0

あなたのPHPコードは質問には関係ありません。これは、ブラウザとJavaScript/jQueryが見ているように、PHPが発行するHTMLを含める必要があります。 _(ヒント:ソースの表示、または要素の検査)_ – Phrogz

答えて

0

forループを削除してこのコードを使用する必要があります。 私のイベントは現在 "変更"されており、 "id"と "sld"という2つの変数を提出します。 $ _POST ['id']と$ _POST ['sld']をチェックし、これらをデータベースに更新するPHPスクリプトを更新します。

それぞれのドロップダウンに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 
      } 
     }); 
    }); 
0

$('status')statusのノード名を持つ要素を選択することになります。あなたはそれを持っていますか?または、$('.status')を意味しましたか?

0

無効なHTMLになる同じIDを持つ複数の要素があると思います。

あなたの選択ボックスにクラスを入れて、次にこのようなものを使用できます。

$("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ループを使用していません。

関連する問題