我对网络开发很陌生,所以请耐心等待。我还简化了代码以尝试获得最佳答案。
<a href="/item/1">Item</a>
<img src="x.png" alt="Delete">
基本上,如果有人点击“项目”,他们会被带到/ item / 1。如果他们点击img x.png,它应该要求服务器删除/ item / 1。
如果我按照原样点击x.png,显然什么都不会发生,但这是个大问题:
我可以让我的Web服务器识别/ item /:id的DELETE方法,但是如何从浏览器提交DELETE?如果我不能使POST或GET成为唯一的选择。
将img包装在一个href = ...周围会很容易,但这只会导致GET并且会破坏RESTfulness,所以看起来我需要使用POST。我怎么能干净利落地做到这一点?
第二个问题:
我假设在提交删除后我还必须刷新页面以获取新数据。有没有办法避免这种情况?
HTML,JavaScript,JQuery答案都是受欢迎的。
答案 0 :(得分:0)
使用jquery ajax
让我们说
<a href="/item/1" class="delete_anchor">Item</a>
$(document).ready(function()
{
$(".delete_anchor").click(function(e)
{
e.preventDefault();
var url = $(this).attr('href');
$.ajax(
{
url: url,
method: 'POST',
success: function()
{
alert("done");
}
});
});
});
<a href="#" id="1" class="delete_anchor">Item</a>
$(document).ready(function()
{
$(".delete_anchor").click(function(e)
{
e.preventDefault();
var id = $(this).attr('id');
$.ajax(
{
url: '/item/,
data: {"id":id},
method: 'POST',
success: function()
{
alert("done");
}
});
});
});
答案 1 :(得分:0)
您要做的是数据库管理的最基本活动,即CRUD(创建读取更新删除)。
我建议您使用PHP Scaffold之类的工具,它将为您创建基本代码*。使用phpmyadmin
导出表格的结构并复制(例如):
CREATE TABLE `phone` (
`Id_Phone` int(11) NOT NULL AUTO_INCREMENT,
`Ds_Phone` varchar(20) COLLATE utf8_bin DEFAULT NULL,
`Nr_Phone_Country_Code` int(3) NOT NULL DEFAULT '55',
`Nr_Phone_Area_Code` int(3) NOT NULL DEFAULT '11',
`Nr_Phone_Number` int(10) NOT NULL
)
您必须拥有包含数据库连接信息的文件(PHP Scaffold将为您提供包含)
<?php
$username = "who"; // your username
$password = "aPassword"; // yor password
$database = "mydbName"; // your db name
$server = "localhost"; // leave this
// Opens a connection to a MySQL server
$connection = mysql_connect ($server, $username, $password) or die(mysql_error());
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection) or die(mysql_error());
?>
不是在你的代码中复制它,而是保存这个文件(我称之为ConnDB.php
并将其包含在每个新的php页面的开头 - 如果你使用上面的工具,它会为你)
include ('ConnDB.php');