找到最接近的复选框值

时间:2011-12-15 07:36:46

标签: php jquery

我有一个有价格的产品清单,在产品名称之前我有一个复选框。我想要的是当我选中一个复选框时,价格必须显示在表格中。

产品是通过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>之间的复选框。因此,当我选中其中一个复选框时,该值必须显示在<div class="module_value"></div>

我试过这样的事情:

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

但是没有用,所以我希望有人可以帮助我。

提前致谢!

1 个答案:

答案 0 :(得分: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中看到它。