这个onClick有什么问题?使用Javascript

时间:2013-07-21 18:58:40

标签: php javascript variables onclick

我这半天都在处理。我的功能不起作用。它在某一点上工作,现在我无法弄清楚如何回去。这是我的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>

我终于说不出来了。

非常感谢任何帮助。

谢谢,

1 个答案:

答案 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>