我有这个脚本,试图通过 AJAX 调用删除图像。
PHP
foreach ( $in_folder as $img => $v ) {
echo '
<span class="imageHolder">
<a onclick="DeleteImage('.$img.'); return false;" href="javascript:;">X</a>
<img src="uploads/' . $img .'"/>
<span class="uploaded">
</span>
</span>';
// print_r($in_folder);
}
JS:
function DeleteImage(img){
$.ajax({
url: 'delete.php',
type: "POST",
data: img,
success: function(datos){
console.log("check");
}
});
}
删除.php
if($_GET["action"]=="deleteimage")
{
$imagefile = $POST['img'];
$img_path = 'uploads/' . $img;
unlink ( $img_path );
}
问题是 JS 部分,我收到错误:
Error: ReferenceError: IMAGE_NAME is not defined
Source File: http://localhost/dev/_upload_test/
Line: 1
但是,PHP $img
变量正在输出 IMAGE_NAME.jpg
<a href="javascript:;" onclick="DeleteImage(IMAGE_NAME.jpg); return false;">X</a>
这个错误不应该是
Error: ReferenceError: IMAGE_NAME.jpg is not defined
(扩展名在哪里??)
显然是我的扩展.jpg
正在被ajax进程切断,但是自从my JS skills are <= 0
,我无法理解这个过程中出了什么问题..
最佳答案
你需要改变
data: img,
至
data: { img:img },
或使用
data: "img="+img,
您还需要使用 '
或 "
来包装字符串。
<a href="javascript:;" onclick="DeleteImage('IMAGE_NAME.jpg'); return false;">X</a>
<!-- --^-- --^-- -->
将你的 php 代码更改为这样,
foreach ( $in_folder as $img => $v ) {
echo '
<span class="imageHolder">
<a onclick="DeleteImage(\''.$img.'\'); return false;" href="javascript:;">X</a>
<img src="uploads/' . $img .'"/>
<span class="uploaded">
</span>
</span>';
// print_r($in_folder);
}
?>
关于javascript - AJAX 调用期间删除的文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22455554/