我正在对一个名为save_tags.php
php
文件执行Ajax
请求,这是文件的内容:
$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;
?>
该文件的目的是应用用户已检查的标记,并将其应用于正在处理的对象。目前上面的代码正在工作,就像在标签中一样正在应用和保存。但是不起作用的是$output
变量没有被echoed
,我不知道为什么。
此外,当我通过浏览器窗口检查我的控制台时,我可以看到请求文件时出现500
错误。
我将不胜感激任何帮助。
<ul>
这是标签html,请检查源页面
并检查警报(数据)
$.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;
如果$tagarray为空,则 echo = 页面上<ul></ul>
不可见
> 500 个错误通常意味着你的 php 代码有问题。确保代码不会出错。尝试在浏览器中转到它并确认没有错误。
首先,尝试在这里和那里放置一些var_dumps,看看你的数据是否正确。状态代码 500 表示脚本中很可能存在致命错误。这可以是在这个 php 文件中,也可以是你的一个类。您很可能会在几分钟内找到答案。要检查您的脚本是否有效,请尝试回显一些简单的"test"并注释其他所有内容。