onclick删除文件和MySQL

时间:2013-08-22 13:16:56

标签: php ajax mysqli

所以,我现在非常喜欢在php中编码,而且我正在攻击数据库。

我想我可能也需要学习一些AJAX,但在我跳到另一种语言之前我会问你们。

好的,我正在编写一个“edit.php”页面来编辑项目的详细信息。该项目可以附加多个图像文件,并且它们都已链接并正常工作。

在每个文件上,我都有一个删除按钮,这样用户就可以删除已经上传的文件(并从数据库中删除该条目)。

目前,我的代码只读取并显示数据库中的内容,但如果用户点击删除图标,则不会给出实际删除图像的反馈。

以下是图片代码:

<p>
    <a href="#" onclick="this.parentNode.parentNode.removeChild(this.parentNode)"><img src="assets/ux/delete_12px.png" width="12px" height="12px" style="margin:0px 5px -2px 0px" /></a>
    <span style="font-weight:bold">[<span style="color:#36F">Picture</span>]</span>&nbsp; 
    <span style="color:#666"><?=$rowImgFile['fileURL']?></span>
</p>

因此,当您立即点击删除图标时,图像将会在视觉上消失。我还需要在服务器上删除它。

我知道如何用php和mysqli做到这一点,但我如何在函数内执行此操作?最好的方法是什么?

我在另一个页面中看到删除图标的onclick功能正在触发页面刷新,将“deletepicture =”picture“添加到URL。这是最好的方法吗? (我不希望在删除图像时刷新页面。我只想执行我的php代码和mysqli代码并将其删除=)

提前致谢!

1 个答案:

答案 0 :(得分:2)

  

我想我可能也需要学习一些AJAX,但我会问你们   在我跳进另一种语言之前。

AJAX是一种协议,而不是一种语言(yep)。这种语言被称为&#34; JavaScript&#34;并且你已经在使用它:它只是几行代码的问题。


  

(我不希望页面刷新   删除图像时我只是想执行我的PHP代码和mysqli   代码并把它拿走=)

如果您想阻止页面重新加载,您可以在新窗口中打开删除请求(这很糟糕)或学习编写AJAX请求。在你的情况下,它会是类似的。

替换

onclick="this.parentNode.parentNode.removeChild(this.parentNode)"

onclick="deleteImage(this)"

并将此JS放在页面中的任何位置(我假设您已包含jQuery)。

<script>
function deleteImage(domEl){
domEl.parentNode.parentNode.removeChild(domEl.parentNode);
var imageNumber = "-- retrieve here the image identifier you'll need in the PHP page";
$.post("/yourServer/deleteImage.php", imageNumber);
}
</script>

使用此脚本,您可以在不重新加载整个HTML页面的情况下调用PHP文件上的操作。请注意,为了从mysqli数据库中删除图像,您可能需要此图像的唯一标识符。既然你没有问过,我假设你已经知道如何在javascript中获取它。我还假设您已经知道如何对文件deleteImage.php进行编码,以便在从$_POST$_GET检索图像标识符后从数据库中删除数据。

  

如何使用POST功能发送2个变量? projectID和   IMAGEURL

$.post("url", {projectID : "123", imageURL: "234"});

这个{}是标准的js对象文字表示法。所以这种语法也是有效的。

var args = {};
args.projectID = "123";
args.imageURL = "234";
$.post("url", args );