要求服务器删除记录

时间:2017-02-18 22:14:26

标签: javascript jquery html rest

我对网络开发很陌生,所以请耐心等待。我还简化了代码以尝试获得最佳答案。

<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答案都是受欢迎的。

2 个答案:

答案 0 :(得分:0)

使用jquery ajax

让我们说

方法1

<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");
             }
          });
     });
});

方法2

<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');
  • 检查代码,你会找到你怀疑的答案。玩它,包括选择并从您的数据库填充它们。玩得开心。