我有这个脚本,试图用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");
}
});
}
delete.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
以来,我无法理解过程中出现的问题。
答案 0 :(得分:3)
您需要更改
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);
}
?>
答案 1 :(得分:1)
您的参考错误的原因&#34; IMAGE_NAME未定义&#34;将在以下行中,文件名周围没有引号。
<a href="javascript:;" onclick="DeleteImage(IMAGE_NAME.jpg); return false;">X</a>
Javascript然后希望您的IMAGE_NAME成为对象,并尝试调用未定义对象的jpg属性。那就是你的&#34; .jpg&#34; &#39;消失&#39;
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);
}
注意&#34;&#39;&#34; (双引号,单引号,双引号)我在DeleteImage函数中添加了$ img。
希望这能帮到你!
编辑:这会将删除链接更改为:
<a href="javascript:;" onclick="DeleteImage('IMAGE_NAME.jpg'); return false;">X</a>