2011-08-02 25 views
0

ここにはいくつかのチェックボックスがあります。ちょうどこのよう:jqueryのチェックボックスをチェックしてください

<div id = 'fCheck'> 
    <input type="checkbox" id="mango" value="mango" /> <label>MANGO</label><br> 
    <input type="checkbox" id="santol" value="santol" /> <label>SANTOL</label><br> 
    <input type="checkbox" id="guava" value="guava" /> <label>GUAVA</label><br> 
    <input type="checkbox" id="lomboy" value="lomboy" /> <label>LOMBOY</label><br> 
    <input type="checkbox" id="apple" value="apple" /> <label>APPLE</label><br> 
    <input type="checkbox" id="orange" value="orange" /> <label>ORANGE</label><br> 
</div> 

と私はまた、このデータを持っている:今

SupplierID  fruit_name  Granted 
    10792  "mango"   "Y" 
    10792  "santol"   "Y" 
    10792  "guava"   "N" 
    10792  "lomboy"   "N" 
    10792  "apple"   "Y" 
    10792  "orange"   "Y" 

、何イムがやろうとすると、(AJAX呼び出しを通じて)10792を仕入その毎回のI入力、すべての果物です許可されたフィールドにYがあり、上記のチェックボックスを使って表示され、Nはチェックされません。私を助けてくれますか? granted yes or noに基づいてチェックボックスをオンにすることは問題です。おかげで

私のAJAX呼び出し:これらのチェックボックスのマークアップを作成している間

var params = { 
    "SessionID": $.cookie("SessionID"), 
    "dataType":"data" 
}; 
$.ajax({ 
    type: 'GET', 
    url: 'processjson.php?' + $.param({path:'supplier/view',json:JSON.stringify(params)}), 
    dataType: primeSettings.ajaxDataType, 
    success: function(data) { 
    if ('error' in data) 
    { 
     showMessage('ERROR: ' + data["error"]["msg"]); 
    } 
    else{ 
     $.each(data['result']['main']['rowdata'], function(rowIndex, rowDataValue) { 
     var groupFlag=0; 
     $.each(rowDataValue, function(columnIndex, rowArrayValue) { 
      var fldName = data['result']['main']['metadata']['fields'][columnIndex].name; 
      if (fldName == 'supplier_id'){ 
      supplierID = rowArrayValue; //alert(rightCode); 
      if (supplierID == SupID){//check if the supplier found 
       groupFlag=1; 
      } 
      } 
      if (fldName == 'fruit_name'){ 
      fruitname = rowArrayValue; 
      } 
      if (fldName == 'granted'){ 
      grant = rowArrayValue; 
      if (groupFlag ==1){ 
       if (hasRight == 'y') 
       $('#dialogUserGroupEdit').append('<input type="checkbox" id="'+ rightGroupCode +'" value="'+ rightDesc +'" /> <label>'+rightDesc+'</label><br>'); 
       //must check the checkbox here that have the same fruit_name in the html 

      } 
      } 
     }); 
     }); 
    } 
    }  
}) 
+1

huh?このテーブルはどこですか?どのように情報を入手していますか? etc ... – Neal

+0

あなたのアヤックスは何を返すのですか? JSONオブジェクト? – ReX357

+0

@ReX、はい、そのjsonオブジェクトです。しかし、私のチェックボックスはhtmlだけです。 – jayAnn

答えて

1

私は今それを理解しました。ここで何が起こるのですか? 「サプライヤID」と入力するたびに、果物が許可されているかどうかは私のAjaxを呼び出し、サプライヤテーブル(そのIDの下にある)を確認します。果物がで、となっている場合は、すべてのチェックボックスをループし、fruitsID(存在する場合)をチェックします。見つかった場合、チェックボックスがチェックされます。ここ

が大幅に私のために働く私の答えです:

   $("input:checkbox").each(function(){ 
        if ($(this).attr("id") == fruitName){ 
        $(this).attr("checked",true); 
        }          
       }); 

そして、ここでは私の完全なAJAX呼び出しです。

var params = { 
    "SessionID": $.cookie("SessionID"), 
    "dataType":"data" 
}; 
$.ajax({ 
    type: 'GET', 
    url: 'processjson.php?' + $.param({path:'supplier/view',json:JSON.stringify(params)}), 
    dataType: primeSettings.ajaxDataType, 
    success: function(data) { 
    if ('error' in data) 
    { 
     showMessage('ERROR: ' + data["error"]["msg"]); 
    } 
    else{ 
     $.each(data['result']['main']['rowdata'], function(rowIndex, rowDataValue) { 
     var groupFlag=0; 
     $.each(rowDataValue, function(columnIndex, rowArrayValue) { 
      var fldName = data['result']['main']['metadata']['fields'][columnIndex].name; 
      if (fldName == 'supplier_id'){ 
      supplierID = rowArrayValue; //alert(rightCode); 
      if (supplierID == SupID){//check if the supplier found 
       groupFlag=1; 
      } 
      } 
      if (fldName == 'fruit_name'){ 
      fruitname = rowArrayValue; 
      } 
      if (fldName == 'granted'){ 
      grant = rowArrayValue; 
      if ((groupFlag ==1) && (granted == 'Y')){ 
       $("input:checkbox").each(function(){ 
        if ($(this).attr("id") == fruitName){ 
        $(this).attr("checked",true); 
        }          
       }); 
      } 

      } 
     }); 
     }); 
    } 
    }  
}) 
0

あなたはY 『を選択=「付与==それらの項目の入力タグで選択した属性』を追加することができます。ページのロードにjqueryのを介してこれを行うには持っていけない。

0
IF Granted="Y" 
<input checked="checked" /> 

だけは、このチェックボックスは、デフォルトでチェックされるように好きな場所=は「をチェックする」にチェックを追加。

+0

返信ありがとうございます。私の編集を参照してください – jayAnn

+0

私はそのように簡単に願っています。しかし、私は再びHTMLを見直して、自分のテーブルと同じIDをチェックしなければなりません...コードを書くことはわかりません。 – jayAnn

0

あなたは(テストしていない)、これを試みることができる -

$.each(results, function() { 
     if (this.Granted === 'Y') $('input:checkbox[id=' + this.fruit_name + ']').attr('checked',true); 
    }); 
+0

こんにちは、私の編集を参照してください..返信ありがとう – jayAnn

0

あなたのテーブルをスキャンし、見つかった各列のためのボックスをチェックする必要があります。

$('#table tr').each(function() { 
    var name = $(this).find('td.eq(2)').text(); 
    var granted = $(this).find('td.eq(3)').text(); 

    var chk = $('#fCheck #'+name); //$('#fCheck input[value="'+name+'"]'); 

    if (granded.toLowerCase() == 'y') { 
     chk.attr('checked', true); 
    } else { 
     chk.removeAttr('checked'); 
    } 
}); 

これは、テーブルのすべての行を選択することを注記表は、より多くの行が含まれている場合、あなただけの最初の列にあなたのサプライヤIDを含む行にこれを狭くする必要があるでしょう。

+0

私のテーブルは表示されません。私はちょうどテキストボックスにIDを入れて、ajaxを呼び出さなければなりません。次に、「y」を持つ果物を探します。見つかった場合は、自分のhtmlのチェックボックスをオンにします。私のテーブルはここには表示されていません – jayAnn

+0

"テーブル"の代わりに "データ" –

関連する問題