所以,我现在非常喜欢在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>
<span style="color:#666"><?=$rowImgFile['fileURL']?></span>
</p>
因此,当您立即点击删除图标时,图像将会在视觉上消失。我还需要在服务器上删除它。
我知道如何用php和mysqli做到这一点,但我如何在函数内执行此操作?最好的方法是什么?
我在另一个页面中看到删除图标的onclick功能正在触发页面刷新,将“deletepicture =”picture“添加到URL。这是最好的方法吗? (我不希望在删除图像时刷新页面。我只想执行我的php代码和mysqli代码并将其删除=)
提前致谢!
答案 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 );