【问题标题】:PHP unlink file using AJAX doesn´t return result to javascript after unlink files使用 AJAX 取消链接文件的 PHP 在取消链接文件后不会将结果返回给 javascript
【发布时间】:2013-08-24 20:56:04
【问题描述】:

在使用 ajax php 取消链接文件后,我无法获得结果。 unlink 函数完成了这项工作,但无法将结果返回给 javascript。

JAVASCRIPT**

我使用非常普通的 ajax 和 POST 方法

PHP

$params=$_POST['params'];
$id_edit=$_POST['id_edit'];

//然后我使用 $_POST['id_edit']; 从数据库中获取图像的名称对于 where 子句。

$del_img="imgfolder/".$row['name_img'];

//然后取消链接文件

if (file_exists($del_img)) {
        unlink($del_img);
    }

////unlink完成后发送结果到ajax

echo"ok";

***文件被完全删除但ajax无法取回结果。 PS:我没有错误,ajax 完全没有问题。但是就是不能让php把结果给回来。我猜是因为 unlink 文件无法将结果提供给 ajax ?

【问题讨论】:

  • 显示您的 Javascript 代码并从您的 PHP 中查找任何记录的错误消息。您正在记录 PHP 错误,不是吗?
  • 嘿,谢谢您的回答...我使用了一个非常普通的 javascript,而且我已经习惯了 ajax,但是这种情况(取消链接文件)是我尝试过的新东西。我没有错误只是无法得到结果。我已经尝试了另一个测试,方法是在没有 ajax 的情况下使用它来查看是否有错误,但我根本没有错误。我怎么知道我没有错误?是的,我使用了 document.getelementbyid() 方法并在 div 中获取结果。无需取消链接方法即可正常工作。我也在没有 ajax 的情况下对其进行了测试。我没有错误。
  • 这样的问题容易让人迷失在混乱和晦涩中。
  • 嗨 Fred -ii,我想让你试试看。在 php 中使用带有 unlink() 的非常简单的 ajax php。看看你是否将结果返回给 javascript。我曾尝试回显等等....但是一旦我删除了 php 中的 unlink() ,php 中的回显可能会被发送回 javascript。
  • echo "ok"; 够用吗?您不需要设置一些标题,例如 Content-Type: 吗? AJAX 可能会挑剔什么是有效回复。发布您的 AJAX 代码。如果您使用 Chrome 访问该网站,开发工具正在运行,并且在使用此页面时屏幕下半部分的网络选项卡位于上方,您会看到什么?

标签: php ajax


【解决方案1】:

当您不显示 JavaScript 代码时很难解决,但这对我有用!

function send(){
    if (xmlHttp.readyState === 0 || xmlHttp.readyState === 4) {
            xmlHttp.open("POST", example.php, true);
            xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlHttp.onreadystatechange = handleServerRespons;
            xmlHttp.send("what ever you want to send");
            }else{
          setTimeout('send()', 1000);      
        }
   }


function handleServerRespons(){

如果您想使用响应文本(这不适用于 IF 语句):

if (xmlHttp.readyState === 4){
    if (xmlHttp.status === 200){
        if(url === 'sections/verify.php'){
            var text1Response = xmlHttp.responseText;

如果要使用xml:

        var xmlResponse = xmlHttp.responseXML;
            var xmlDocumentElement = xmlResponse.documentElement;
             message = xmlDocumentElement.firstChild.data;
             if (message = "ok"){
               alert("ok");
            }else{
               alert("fail");
          }
      }

【讨论】:

  • 您好,感谢您的回复。我希望你尝试取消链接文件,看看你是否能得到结果。我完全没有 javascript 的问题。我将它与许多功能一起使用,没有任何问题。但是取消链接文件-->我无法得到结果。
  • 好的,我明白了。我对取消链接文件没有经验,所以我无法帮助您:/您要我删除帖子吗?
  • 诺诺,你很善良!
【解决方案2】:

我终于找到了错误。 我使用 json 将错误作为数组返回。 这就是为什么我无法收到错误消息。

但这很奇怪...我用纯 php 测试(没有 ajax)为什么我没有收到错误消息?

顺便说一句

通过 put 修复了错误。 ($_SERVER['DOCUMENT_ROOT']."img_folder/".$row['name_img']);

因为一开始我只有 $del_img="imgfolder/".$row['name_img'];

这就是为什么如果文件不存在我会收到消息。

在我找到之后 因为 $row[img] 是空的。 并且取消链接功能不知道名称 要删除的图像数量。

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 2017-05-06
    • 2016-10-04
    • 2012-08-05
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多