php结合js实现点击超链接执行js代码,并确认是否删除数据库数据。
实现点击超链接实现执行js代码,并确认是否删除数据库数据,采用php。
1,链接数据库,查询数据库数据:
复制代码 代码示例:
<?php
$dbms='
mysql';//数据库类型 ,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数
$host='localhost'; //数据库主机名
$dbName='db_database19'; //使用的数据库
$user='root'; //数据库连接用户名
$pass='root'; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";
try {
$pdo = new PDO($dsn, $user, $pass);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="select * from tb_pdo_mysql"; //定义
sql语句
$result=$pdo->prepare($query); //准备查询语句
$result->execute(); //执行查询语句,并返回结果集
while($res=$result->fetch(PDO::FETCH_ASSOC)){ //while循环输出查询结果集,并且设置结果集的为关联索引
?>
<tr>
<td height="22" align="center" valign="middle"><?php echo $res['id'];?></td>
<td align="center" valign="middle"><?php echo $res['pdo_type'];?></td>
<td align="center" valign="middle"><?php echo $res['database_name'];?></td>
<td align="center" valign="middle"><?php echo $res['dates'];?></td>
<td align="center" valign="middle"><a href="
javascript:del(<?php echo $res['id']?>)">删除</a></td>
</tr>
<?php
}
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
?>
2、在超链接删除处调用一javascript方法,传递记录id,js方法为:
复制代码 代码示例:
<script>
function del(_id) {
if (confirm("确认删除"))
{
window.location.href="index.php?conn_id="+_id; //本页面刷新
}
}
</script>
3、删除数据库记录代码:
复制代码 代码示例:
<?php
if(@$_GET['conn_id']!=""){
$dbms='mysql';//数据库类型 ,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数
$host='localhost'; //数据库主机名
$dbName='db_database19'; //使用的数据库
$user='root'; //数据库连接用户名
$pass='root'; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";
try {
$pdo = new PDO($dsn, $user, $pass);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$query="delete from tb_pdo_mysql where Id=:id";
$result=$pdo->prepare($query); //预准备语句
$result->bindParam(':id',$_GET['conn_id']); //绑定更新的数据
$result->execute();
} catch (PDOException $e) {
echo 'PDO Exception Caught.';
echo 'Error with the database:<br/>';
echo 'SQL Query: '.$query;
echo '<pre>';
echo "Error: " . $e->getMessage(). "<br/>";
echo "Code: " . $e->getCode(). "<br/>";
echo "File: " . $e->getFile(). "<br/>";
echo "Line: " . $e->getLine(). "<br/>";
echo "Trace: " . $e->getTraceAsString(). "<br/>";
echo '</pre>';
}
}
?>
这段代码放在html页面body部分最开头处,最坏也要放在查询记录代码之前。
使用了jquery.js来实现ajax和dom删除
首先加入:
复制代码 代码示例:
<script type="text/javascript" src="lib/jquery.js"></script>
给table加个:
复制代码 代码示例:
id="t<!--{$item.id}-->"
js代码:
复制代码 代码示例:
<script>
function delItem (id) {
$.get('delete.php?id='+id,null,function (msg) {//ajax请求,请求后执行下面代码
if ('1'==msg) {//返回1表示成功
$('#t'+id).remove();//把id为txx 的表格删除
} else {//否则弹出错误信息
alert(msg);
}
});
}
</script>
删除链接改成 href="javascript:delItem('<!--{$item.id}-->')"
delete.php的修改就是把错误语句改成直接输出就行了。
index.tpl :
复制代码 代码示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>所有留言</title>
<link rel="stylesheet" type="text/css" href="style.css" media="all" />
<script type="text/javascript" src="lib/jquery.js"></script>
</head>
<body>
<!--{if $smarty.session.username}-->
Welcome:<!--{$smarty.session.username}-->
<a href="logout.php">退出</a>
<!--{else}-->
<a href="login.php">登录</a>
<a href="reg.php">注册</a>
<!--{/if}-->
<a href="add.php">发表留言</a>
<!--{foreach from=$gblist item=item}-->
<table id="t<!--{$item.id}-->" width="700" border="0" cellspacing="0" cellpadding="0" class="tb">
<tr>
<td class="bg"><b>[<!--{$item.username}-->]</b> 发表于:<!--{$item.insert_time}--></td>
</tr>
<tr>
<td><!--{$item.content}-->
<br />
<!--{if $item.user_file}-->
附件:<a target="_blank" href="uploads/<!--{$item.user_file}-->"><!--{$item.user_file}--></a>
<!--{/if}-->
</td>
</tr>
<tr>
<td align="right"><!--{if $item.user_id==$smarty.session.user_id}--><a href="add.php?id=<!--{$item.id}-->">修改</a> <a href="javascript:delItem('<!--{$item.id}-->')">删除</a><!--{/if}--></td>
</tr>
</table>
<!--{/foreach}-->
<!--{$pagePanel}-->
<script>
function delItem (id) {
$.get('delete.php?id='+id,null,function (msg) {
if ('1'==msg) {
$('#t'+id).remove();
} else {
alert(msg);
}
});
}
</script>
</body>
</html>
2、文件删除 delete.php :
复制代码 代码示例:
<?php
require('common.php');
// 查询出留言信息
$q = $query->query('select * from gb_content where id='.intval($_GET['id']));
$rs = $query->fetch_array($q);
$error = array();
if ($rs['user_id']!=intval($_SESSION['user_id'])) {// 判断user_id是否相同
$error = '该信息你不能删除,只能删除自己发布的';
}
if (!$error) {
$query->query('delete from gb_content where id='.intval($_GET['id']));//删除语句
if ($rs['user_file']) {//删除附件
@unlink('uploads/'.$rs['user_file']);
}
echo 1;//表示成功
} else {
echo $error;
}
?>