我这半天都在处理。我的功能不起作用。它在某一点上工作,现在我无法弄清楚如何回去。这是我的HTML代码
<a href="#" onclick="updateDB('<?php echo $a; ?>','<?php echo $b; ?>','<?php echo $c; ?>','<?php echo
$d; ?>','<?php echo $e; ?>','<?php echo $f; ?>','<?php echo $g; ?>','<?php echo $h; ?
>','<?php echo $i; ?>','<?php echo $j; ?>','<?php echo $k; ?>')">Test</a>
这是我的javascript代码
<script>
$(function() {
function updateDB(a,b,c,d,e,f,g,h,i,j,k)
{
$.post("update.php",
{ a:a,b:b,c:c,d:d,e:e,f:f,g:g,h:h,i:i,j:j,k:k
});
alert("Finally");
}
}
</script>
我终于说不出来了。
非常感谢任何帮助。
谢谢,
答案 0 :(得分:1)
因为您使用的是<a>
标记,所以需要停止默认执行此类链接。最简单的是:
onclick="updateDB(...); return false;"
话虽如此,既然你已经使用了jQuery,请帮自己一个忙,并使用jQuery的事件处理程序,例如:
<a href="#" id="testlink">Test</a>
<script>
$('#testlink').click(function(event){
event.preventDefault();
updateDB('<?php echo $a; ?>','<?php echo $b; ?>','<?php echo $c; ?>','<?php echo $d; ?>','<?php echo $e; ?>','<?php echo $f; ?>','<?php echo $g; ?>','<?php echo $h; ?>','<?php echo $i; ?>','<?php echo $j; ?>','<?php echo $k; ?>');
});
</script>
更好的方法是附加从PHP获得的变量并将它们添加到data-
属性中,这样就可以重用点击处理程序:
<a href="#" class="testlink" data-my-value="1">Test 1</a>
<a href="#" class="testlink" data-my-value="2">Test 2</a>
<script>
$('.testlink').click(function(event){
event.preventDefault();
var data = $(this).attr('data-my-value');
updateDB(data);
});
</script>
更新:要仍然重定向到另一个页面,我会这样做(未经测试):
<a href="newpage.html" class="testlink" data-my-value="1">Test 1</a>
<script>
$('.testlink').click(function(event){
event.preventDefault();
var data = $(this).attr('data-my-value'),
url = $(this).attr('href');
updateDB(data, url);
});
function updateDB(data, url)
{
$.post("update.php",
data,
function() {
window.location = url;
}
);
}
</script>