2014-02-05 171 views
1

我试图确保用户想要从数据库中删除条目。我宁愿停止初始函数中的动作,也不愿意在删除函数中执行它,因为这样做更有意义。无论如何,网站会不断跳过确认对话框,然后继续删除条目。我不确定它是否只是一个语法错误,但我不明白为什么我的jQuery没有跳闸。jQuery确认链接点击

<script type="text/javascript" src="jquery-1.10.2.min.js" ></script> 
<script> 
$(document).ready(function(){ 
    ('a.confirm').click(function(event){ 
     event.preventDefault(); 
     var url = $(this).attr('href') ; 
     var confirm_box = confirm("Are you sure you want to delete this player?"); 
     if(confirm_box){ 
      window.location = url; 
     } 
    }); 
}); 
</script> 
<?php 
function roster_table() 
{ 
    try{ 
     if(isset($_SESSION['session_id']) ) 
     { 
      $db = honneyconnect() ; // db connection established 
      if(mysqli_connect_error()) 
      { 
      throw new Exception("Could not connect to the database") ; 
     } 
     $query = 'select * from roster' ; 
     $players = $db->query($query) ; 
     if(!$players ) 
     { 
      throw new Exception ("Query returned zero results") ; 
     } 
     else 
     { 
      $number_of_players = $players->num_rows ; 
      echo "<div id='player_table'> 
      <table><th>Hells Canyon Honeys Active Skaters</th>" ; 
      for($i = 0; $i < $number_of_players; $i++) 
      { 
       $row = $players->fetch_row() ; 
       echo "<tr><td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td> 
       <td><a href='http://localhost/honeysproject/editplayer.php?player_id=".$row[0]."'>Edit</a></td> 
       <td><a class='confirm' href='http://localhost/honeysproject/deleteplayer.php?player_id=".$row[0]."'>Delete</a></td></tr>" ; 
      } 
      echo "<tr><td><a href='http://localhost/honeysproject/playerinfoentry.php'>Add Player</a></td></tr></table></div>" ; 
     } 
    } 
    else 
    { 
     throw new Exception("You are no longer authorized to view this document. Please re-authenticate!<br>") ; 
     session_destroy() ; 
    } 
    } 
    catch(Exception $error) 
    { 
     echo $error ; 
    } 

} 
+3

应该'('a.confirm')。'不是'$('a.confirm')。'?而你缺少''}}'for your document.ready – putvande

+1

PHP在这里是无关紧要的。改为发布您的呈现HTML。 – j08691

回答

1

你通过(a.confirm).click(...)选择元素时缺少$

修复这样的:

$('a.confirm').click(function(event){ 
    //... 
}); 

此外,还可以通过只使用简化您的整个脚本:

$(document).ready(function(){ 
    $('a.confirm').click(function(event){ 
     return confirm("Are you sure you want to delete this player?"); 
    }); 
}); 

基于返回值(truefalse)重定向将被处理自动。

1

变化('a.confirm').click(function(event){

$('a.confirm').click(function(event){

+0

为了增加这个答案,@NoobWebDev,你可以简化你的代码。看到这个解决方案:http://stackoverflow.com/a/9044823/482115 – degenerate

-1

您在选择器('a.confirm')中缺少$。 关于确认对话框this可能应该对你有帮助

+0

浏览器确认框有什么问题? – putvande

+0

没有问题,在上面的代码中使用了错误的选择器 –

+0

$缺少代码,应该使用$('a.confirm')代替('a.confirm') –