当谈到我的一小段PHP代码时,我已经陷入了困境。这个脚本的作用是从mysql中显示整个表,并在每行中添加一个超链接来删除这样的行。
<?php
$connection=mysql_connect('localhost','root','') or die(mysql_error());
error
mysql_select_db('localhost_db',$connection) or die(mysql_error());
$query=mysql_query("SELECT * FROM cms_contest") or die(mysql_error());
if(mysql_num_rows($query)>0):
?>
<table width="100%" border="0">
<tr style="font-weight:bold;">
<td align="center">Id</td>
<td align="center">First Name</td>
<td align="center">Last Name</td>
<td align="center">Email</td>
<td align="center">Phone</td>
<td align="center">Answer</td>
<td align="center">Remove</td>
</tr>
<?php
while($row=mysql_fetch_object($query)):?>
<tr>
<td align="center"><?php echo $row->ID; //row id ?></td>
<td align="center"><?php echo $row->name; // row first name ?></td>
<td align="center"><?php echo $row->surname; //row las tname ?></td>
<td align="center"><?php echo $row->email; //row created time ?></td>
<td align="center"><?php echo $row->phone_number; //row created time ?></td>
<td align="center"><?php echo $row->contest_answer; //row created time ?></td>
<td align="center"><a href="#">REMOVE</a></td>
</tr>
<?php endwhile;?>
</table>
<?php
else: ?>
<h3>No Results found.</h3>
<?php endif; ?>
如果出现一个带有以下问题的简短javascript弹出窗口,那将是完美的:您确定要删除此条目吗?确定/取消。
我不知道怎么做...感谢任何提示!
答案 0 :(得分:1)
简单/愚蠢的方法:
<td><a href="deleteme.php?id=<?php echo $row-ID ?>">nuke me</a></td>
但如果网页蜘蛛或浏览器链接预取工具在此页面上松动,您将会记录所有记录。
好一点:
<td>
<form method="post" action="deleteme.php">
<input type="hidden" name="id" value="<?php echo $row->ID ?>" />
<input type="submit" value="Nuke me" />
</form></td>
然后有各种选项涉及单选按钮/复选框,或者JS可以捕获点击链接等...
但是,最后,他们都归结为&#34;你必须将行的ID发送回服务器&#34;。你如何做到这一点取决于你...只是不要使用普通的&#34;点击这里&#34;版本
答案 1 :(得分:1)
确实有几种不同的方法可以做到这一点。我喜欢的一种方法是将整个表包装在提交到删除脚本的表单中,并为每行使用一个按钮作为其值。
<form method="post" action="delete.php">
<table width="100%" border="0">
<tr style="font-weight:bold;">
<td align="center">Id</td>
<td align="center">First Name</td>
<td align="center">Last Name</td>
<td align="center">Email</td>
<td align="center">Phone</td>
<td align="center">Answer</td>
<td align="center">Remove</td>
</tr>
<?php while($row=mysql_fetch_object($query)): ?>
<tr>
<td align="center"><?php echo $row->ID; //row id ?></td>
<td align="center"><?php echo $row->name; // row first name ?></td>
<td align="center"><?php echo $row->surname; //row las tname ?></td>
<td align="center"><?php echo $row->email; //row created time ?></td>
<td align="center"><?php echo $row->phone_number; //row created time ?></td>
<td align="center"><?php echo $row->contest_answer; //row created time ?></td>
<td align="center">
<button name="delete-id" type="submit" value="<?php echo $row->ID; ?>">
REMOVE
</button>
</td>
</tr>
<?php endwhile;?>
</table>
</form>
还有许多不同的方法可以确认删除。我在客户端最简单的方法是将onclick="return confirm('Are you sure?');"
添加到删除按钮。
答案 2 :(得分:1)
点击事件:
<a href="#" onClick="confirmDelete(<?php echo $row->ID; ?>)">DELETE</a>
<script type="text(javascript">
function confirmDelete(id){
if(confirm('sure u want to delete entry with id: ' + id + '?')){
window.location.href = "ursite.php?id="+id+"&delete=true";
}
}
</script>
PHP
if(isset($_GET['delete'])){
$stmt = "DELETE FROM cms_contest WHERE ID = ".$_GET['id'];
mysql_query($stmt);
}
这是最糟糕的做法。
我建议你看看:
jQuery $.post() {
{3}}
我希望它会对你有所帮助。