我有一个循环:
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>
它仅在我的循环的第一个结果下显示。
有什么想法吗?
感谢。
答案 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);
}
}
});
}