更改Ajax帖子返回

时间:2016-07-22 18:46:06

标签: php ajax

我有一个循环:

do {
// show items
<input type="hidden" id="contestant_id" value="'.$row_contestants['contestant_id'].'">
<input type="hidden" id="user_id" value="'.$userinfo['user_id'].'">
<button class="vote" onclick="vote()">vote</button>
<div id="result"></div>
} while ($row....);

我的功能:

function vote () {
var val1 = $('#contestant_id').val();
var val2 = $('#user_id').val();
  $.ajax({
    url:"vote.php", 
    type: "POST", 
    data: { contestant_id: val1, user_id: val2 },
    success: function(response) {
        $('#result').html(response);
    }
 });

}

我想要做的是从这里得到“投票”文本:

<button class="vote" onclick="vote()">vote</button>

更改为“投票!”之类的其他内容当我得到答复。我有点了,但当然它在这里显示:

<div id="result"></div>

它仅在我的循环的第一个结果下显示。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

你可以将这个从html传递到函数并在脚本中处理

<button class="vote" onclick="vote(this)">vote</button>

function vote (el) {
var val1 = $('#contestant_id').val();
var val2 = $('#user_id').val();
  $.ajax({
    url:"vote.php", 
    type: "POST", 
    data: { contestant_id: val1, user_id: val2 },
    success: function(response) {
        $('#result').html(response);
        if (response  == 'Yes') {
           var text = el.text();
           var values = text.split(' ');
           var count = 1;
           if (values.length == 2) { 
             count = values[1].parseInt + 1;
           }
           el.text('Voted ' + count);
        }
    }
 });
}