1

所以,我现在真的很喜欢用 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 代码并把它拿走 =)

提前致谢!

4

1 回答 1

2

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

AJAX 是一种协议,而不是一种语言(是的)。该语言称为“JavaScript”,您已经在使用它:只需几行代码。


(我不想在删除图像时刷新页面。我只想执行我的 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>

使用此脚本,您可以在 PHP 文件上调用操作,而无需重新加载整个 HTML 页面。请注意,为了从 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 );
于 2013-08-22T13:34:50.303 回答