向php脚本发出Ajax请求,但未输出任何内容

向php脚本发出Ajax请求,但未输出任何内容,php,ajax,Php,Ajax,我正在对名为save_tags.php的php文件执行Ajax请求。php这是该文件的内容: $id = $_POST['id']; $name = $_POST['name']; $type = $_POST['type']; $tags = json_decode(stripslashes($_POST['tags'])); //Should be an Array but is a String... $removeTags = json_

我正在对名为
save_tags.php的
php
文件执行
Ajax
请求。php
这是该文件的内容:

     $id = $_POST['id'];
     $name = $_POST['name'];
     $type = $_POST['type'];
     $tags = json_decode(stripslashes($_POST['tags'])); //Should be an Array but is a String...
     $removeTags = json_decode(stripslashes($_POST['removeTags']));

     //Type can be company, contact, column, supplement, programme. 
     if($type == 'company'){
        $tagObject = new DirectoryCompany($id);
    }elseif($type == 'contact'){
        $tagObject = new DirectoryContact($id);
    }elseif($type == 'column'){
        $tagObject = new Column($id);
    }elseif($type == 'supplement'){
        $tagObject = new Supplement($id);
    }elseif($type == 'programme'){
        $tagObject = new Programme($id);
    }elseif($type == 'list'){
        $tagObject = new DirectoryContactList($id);
    }

     //Add and Remove Tags by looping through the Arrays.  
     foreach($tags as $tag){
         $tagObject->addTag($tag, $id); 

     }
     foreach($removeTags as $tag){
         $tagObject->deleteTag($tag, $id);   
     }

     //Get the tags associated with the object
    $tagarray = $tagObject->getTags($id); 

    // Add Tags to All contacts on the list
    $tagObject->getAllcontactsAndAddTags($id);

    //Build HTML output
    $output  = "<ul>";
    foreach($tagarray as $tag){
        $output .= "<li>". $tag .'<a href="#">[X]</a>'."</li>";
    }
    $output .= "</ul>";
    echo $output;
?>
$id=$\u POST['id'];
$name=$_POST['name'];
$type=$_POST['type'];
$tags=json_decode(带斜杠($_POST['tags'])//应为数组,但为字符串。。。
$removeTags=json_decode(stripslashes($_POST['removeTags']);
//类型可以是公司、联系人、专栏、副刊、计划。
如果($type=='company'){
$tagObject=新董事公司($id);
}elseif($type=='contact'){
$tagObject=新的目录联系人($id);
}elseif($type=='column'){
$tagObject=新列($id);
}elseif($type==‘增补’){
$tagObject=新补充资料($id);
}elseif($type==‘program’){
$tagObject=新计划($id);
}elseif($type=='list'){
$tagObject=新目录联系人列表($id);
}
//通过在数组中循环添加和删除标记。
foreach($tags作为$tag){
$tagObject->addTag($tag,$id);
}
foreach($removeTags作为$tag){
$tagObject->deleteTag($tag,$id);
}
//获取与对象关联的标记
$tagarray=$tagObject->getTags($id);
//向列表中的所有联系人添加标记
$tagObject->GetAllContacts和AddTags($id);
//生成HTML输出
$output=“
    ”; foreach($tagarray作为$tag){ $output.=“
  • ”$tag.“
  • ”; } $output.=“
”; echo$输出; ?>
该文件的目的是应用用户已检查的标记,并将其应用于正在处理的对象。目前,上面的代码正在工作,正如正在应用和保存的标记一样。然而,不起作用的是,
$output
变量没有被
回显,我不知道为什么

另外,当我通过浏览器窗口检查控制台时,我可以看到请求文件时出现
500
错误


我非常感谢你的帮助

首先,尝试在各处放置一些var_转储,看看您的数据是否正确。状态代码500表示脚本中很可能存在致命错误。这可以在这个php文件中,也可以在您的一个类中。
你很可能会在几分钟内找到答案。要检查脚本是否正常工作,请尝试回显一些简单的内容,如“test”,并对其他内容进行注释。

这是标记html,请查看源代码页

并检查警报(数据)

$.ajax({
键入:“POST”,
url:'url',
数据:{},
成功:函数(数据){alert(数据)}
});
$output=“
    ”; foreach($tagarray作为$tag){ $output.=“
  • ”$tag.“
  • ”; } $output.=“
”; echo$输出;

如果$tagarray为空,则echo=
在页面上不可见

500错误通常表示php代码有问题。确保代码没有出错。尝试在浏览器中转到它并确认没有错误

你好,尼克,谢谢你的回复。我已经
回显了一些静态文本,当我查看响应时会显示这些文本。我还做了一些var_转储,看起来数据是正确的。不过,我将进一步研究它。事实上,这是我的php代码中的一个错误。谢谢你的帮助我自己也经常使用ajax,所以调试起来很麻烦。最重要的是,调试它的唯一方法是转储大量数据并查看其是否正确;)问题很可能存在于javascript或htaccess文件中。如果出现500错误,则该脚本甚至没有运行。因此,您应该将您的js脚本添加到这个问题中。我不确定它是
htaccess
,因为它正在查找文件。我将回顾
js
您是否在浏览器控制台中观看了请求/响应?在打开
后立即将错误报告添加到文件顶部,是否将
$\u post['tags']
作为数组值?我对您的代码进行了一些测试,如果您将数组值添加到
$tags
$removeTags
中,看起来非常好。您能进一步解释一下吗?我编辑并添加了如果$tagarray在页面上不可见,则echo=
    $.ajax({  
                        type: 'POST',  
                        url: 'url',
                        data: { },  
                        success: function(data) {alert(data)}
                    });
    
    $output  = "<ul>";
        foreach($tagarray as $tag){
            $output .= "<li>". $tag .'<a href="#">[X]</a>'."</li>";
        }
        $output .= "</ul>";
        echo $output;