2011-12-15 18 views
0

商品名の前に価格のある商品のリストがあります。チェックボックスがあります。私が欲しいのは、テーブルに価格が表示されなければならないというチェックボックスをチェックしたときです。最も近いチェックボックスの値を見つける

製品はMySQLのループによってフェッチされます。

これは、より良いビューのために私のコードです:

<? 
    $query = "SELECT upgrades.upgrade_name, upgrades.upgrade_id, upgrades.volgorde, upgrades.price 
      FROM upgrades 
      LEFT JOIN upgrades_to_products 
      ON upgrades.upgrade_id = upgrades_to_products.upgrade_id 
      WHERE upgrades_to_products.product_id = 20 
      AND status = 1 
      ORDER BY upgrades.volgorde"; 
    $sql = mysql_query("$query"); 
    while ($fill = mysql_fetch_array($sql)) { 
     $upgrade_id = $fill['upgrade_id']; 
     $upgrade_name = $fill['upgrade_name']; 
     $price = $fill['price']; 

     $name = str_replace(' ', '_', $upgrade_name); 
     $name = strtolower($name); 
     echo ' 
     <tr class="'.$class.'">       
      <td> 
       <input id="'.$name.'" name="'.$name.'" type="checkbox" value="'.$price.'" /> 
      </td> 
      <td> 
       <a href="http://www.informer.nl/modules/?ID='.$_GET['ID'].'&upgrade_id='.$upgrade_id.'" target="_blank">'.$upgrade_name.'</a> 
       <a href="http://www.informer.nl/modules/?ID='.$_GET['ID'].'&upgrade_id='.$upgrade_id.'" target="_blank"> 
        <img src="images/vraag.jpg" border="0" style="margin-left:5px;" /> 
       </a> 
      </td> 
      <td align="right">&euro; '.sprintf('%01.2f', $price).'</td>       
      <td align="right"><div class="module_value"></div></td>       
     </tr>'; 
    } 
?> 

あなたが最初<td></td>間のチェックボックスを見ることができます。だから、チェックボックスの1つをチェックすると、その値が<div class="module_value"></div>に表示される必要があります。

私はこのような何か試してみました:

$("input[type=checkbox]").click(function() { 
    var module_price = $("input[type=checkbox]").val(); 
    $(".module_value").text(module_price.toFixed(2)); 
}); 

それdidntの仕事ので、私は、誰かが私を助けることができると思いますが。

ありがとうございます!

答えて

2

アクセサーチェックボックスには:checkboxセレクターを使用でき、.change()はあなたの仕事に適しています。 .closest()とすると、親のtr要素が見つかることがあります。そこから.module_valueが見つかり、そのテキストを変更することができます。

$(':checkbox').change(function() { 
    var $this = $(this), 
     $tr = $this.closest('tr'); 
    $tr.find('.module_value').text(this.checked ? $this.val() : ''); 
}); 

アクションhereで確認できます。

+0

ありがとう、これはうまくいきました。唯一の問題は、価格がまだ表示されているボックスのチェックを外すことです。 –

+0

私もそれを見て、私の答えを更新しました。今すぐチェックしてください。 –

+0

は修正:$( ':チェックボックス')。変更(機能(){ \t \t \tこれは$(この)、 \t \t \t \t \t $ TRを= { \t \t \t \tのvar $)this.checked(場合= $ this.closest( 'TR'); \t \t \t \t $ tr.find( 'module_value')テキスト($ this.val());。 \t \t \t}他 \t \t \t \t \t \t { \t \t \t \t変数$これは$(この)、 \t \t \t \t \t $ TR = $ this.closest( 'TR')=。 \t \t \t \t $ tr.find( '。module_value')。テキスト( ''); \t \t \t} \t \t}); –