2011-05-12 46 views
0

因此,我使用php/mysql生成一个表,并在此表中使用行中的数字。我点击了一个按钮,在MySQL数据库中为此数字值添加+1。问题是,我必须刷新页面以显示新表中的新号码。Jquery如何将+1添加到表中的数字

我试图通过jQuery按钮点击事件的成功上的函数立即显示新的数字。所以基本上我需要识别表格中HTML生成的数字,然后为其添加+1。

问题是,该表是用生成的,而函数在php中生成,所以每一行都在运行中获得自己的ID。

希望这一切都有道理。

这是我的JQuery代码到目前为止。

$('.upArrow').click(function(){ 
    //this is finding the uparrow button that adds +1 
    var row = $(this).attr('rowid'); 

    $.ajax({ 
    type: "GET", 
    url: "upArrow.php?id="+row, 
    cache: false, 
    async: false, 
    success: function(result){ 
    //this is tricky part, how do I select the displayed number part of the 
    // table, then Add 1? 

    }, 
    error: function(result){ 
     alert('Error, please try again.'); 
    } 
    }); 
}); 

编辑:这是我的一块HTML表:

<td id="musicDisplay" colspan="2"> 

    <div id="newUpArrow"> 
     <a href="javascript:void(0)" class = "upArrow" 
     rowid="' . $row['id'] . '"><img src="../Img/upArrow.gif"/> 
      </a> </div> 

    <!--Here is the number I want to change.--> 
    <div>'. $row['points'] . '</div> 
</td> 
+1

和'table'的html? – 2011-05-12 18:27:42

+0

我第一次刚读* Jquery如何给一个数字添加+1,并且认为OMG ....;)请张贴您的HTML。您也不应该为此使用GET请求。 Ajax可以,但如果有人只是在地址栏中输入它,并且正在浏览历史记录等,则值可能会不自觉地增加。 – 2011-05-12 18:29:31

回答

0

从理论上讲,你要设置你的Ajax请求元素包含所需文本上下文 。然后在成功的情况下,你会增加在这种情况下的数量。

$.ajax({ 
    /* everything else as before */ 
    context: $('selector for element containing number to increase'), 
    success: function(result) { 
     $(this).html(parseInt($(this).html(), 10) + 1); 
    } 
}); 

这是假设的背景元素的内容将永远是一个整数

如果您需要选择一个单元由它的列和行,你可以做到以下几点:

var column = 1; 
    var row = 1; 

    var $cell = $('table tr:eq(' + row + ') td:eq(' + column + ')'); 

    $cell.html(parseInt($cell.html(), 10) + 1); 

见琴:http://jsfiddle.net/xixionia/4HLp9/

本书虽然呃,您需要将“表”更改为表的ID,否则您将最终选择中的每个表中该行和列中的所有单元格。

注意:看过您的html,我们将能够提供更详细的如何选择所需单元格的描述。

+0

繁荣这工作!谢谢!! – sanders4069 2011-05-12 19:06:35

+1

如果你使用'parseInt',不要忘记传递正确的基数作为第二个参数('10'为十进制值)。如果整个文本是一个数字,那么'+ $ cell.html()'是将字符串转换为数字的更快方法。 – 2011-05-12 19:14:33

+0

谢谢,菲利克斯......我开始编辑它,但后来失去了网页并忘记了。对不起:)现在修复。 – 2011-05-12 20:01:34

0

你有几行?只需从AJAX调用中重新生成表格并重新加载html就可以了。

相关问题