Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 要求服务器删除记录_Javascript_Jquery_Html_Rest - Fatal编程技术网

Javascript 要求服务器删除记录

Javascript 要求服务器删除记录,javascript,jquery,html,rest,Javascript,Jquery,Html,Rest,我对网络开发还很陌生,所以请容忍我。我还简化了代码,试图得到最佳答案 <a href="/item/1">Item</a> <img src="x.png" alt="Delete"> 基本上,如果有人单击“Item”,他们会被带到/Item/1。如果他们单击img x.png,它应该要求服务器删除/item/1 显然,如果按原样单击x.png,什么也不会发生,但这是一个大问题: 我可以让我的web服务器识别/item/:id的删除方法,但是如何从浏览器

我对网络开发还很陌生,所以请容忍我。我还简化了代码,试图得到最佳答案

<a href="/item/1">Item</a>
<img src="x.png" alt="Delete">

基本上,如果有人单击“Item”,他们会被带到/Item/1。如果他们单击img x.png,它应该要求服务器删除/item/1

显然,如果按原样单击x.png,什么也不会发生,但这是一个大问题:

我可以让我的web服务器识别/item/:id的删除方法,但是如何从浏览器提交删除?如果我做不到,那就只能选择POST或GET了

将img包装在a href=。。。这将很容易,但这只会导致一个GET,并且会破坏宁静,所以看起来我需要使用POST。我怎样才能做到干净呢

第二个问题:

我假设在提交delete之后,我还必须刷新页面才能获得新的数据。有没有办法避免这种情况

欢迎使用HTML、JavaScript和JQuery回答。

使用JQuery ajax

比方说

方法1

$(文档).ready(函数()
{
$(“.delete_anchor”)。单击(函数(e)
{
e、 预防默认值();
var url=$(this.attr('href');
$.ajax(
{
url:url,
方法:“POST”,
成功:函数()
{
警惕(“完成”);
}
});
});
});
方法2

$(文档).ready(函数()
{
$(“.delete_anchor”)。单击(函数(e)
{
e、 预防默认值();
var id=$(this.attr('id');
$.ajax(
{
url:'/item/,
数据:{“id”:id},
方法:“POST”,
成功:函数()
{
警惕(“完成”);
}
});
});
});

您要做的是数据库管理最基本活动的一部分,即CRUD(创建-读取-更新-删除)

我建议您使用这样的工具,它将为您创建基本代码*。使用
phpmyadmin
导出表的结构并复制(例如):

您必须有一个包含数据库连接信息的文件(PHP Scaffold将为您放置include)

  • 检查代码,您将找到您的疑问的答案。使用它,包括从数据库中选择并填充它们。玩得开心
如果您不希望您的网页在可能的复制后刷新,请使用Ajax。这正是我想要的。两条注释:为了保持restful实践,我将方法改为“DELETE”而不是“POST”,添加了错误:function(),以便捕获错误,并成功地使用window.location.reload()刷新页面,以便删除的项目消失。太棒了!很高兴帮助你,伙计
<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");
             }
          });
     });
});
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 
$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());
?>
include ('ConnDB.php');