我正在编写一个用户界面,允许用户上传一组视频,每个视频都显示在页面区域的单独选项卡上。当上传新视频或删除现有视频(均通过 AJAX)时,我想相应地更新选项卡。我在更新标签后无法重绘标签,并且没有运气。这就是我正在做的事情:
javaScript 将请求发送到服务器,如下所示:
function deleteVideo(id){
$.post("video.php?action=deletevideo",
{'id' : id},
function(response){
$('#videoTabs').html(response);
$('#videoTabs').tabs();
}
);
}
在 PHP 端,请求的处理方式如下:
switch($_GET['action']) {
case 'deletevideo':
try{
$video = new videoClass($_POST['id']);
$video->delete();
draw_video_tabs();
}catch(Exception $e){
echo $e->getMessage();
}
break;
我可以看到 PHP 脚本发回的代码正是我所期望的,并且“draw_video_tabs”函数与我最初绘制页面时使用的函数相同(不使用 ajax)。它给我的 HTML 正是它应该是的。
然而,由于某种原因,当它发回回复时,“#videoTabs”div 没有得到标签。相反,我看到的是直接的 HTML(一个项目符号列表和一组匹配的 div)。
我还尝试将响应作为 JSON 编码对象发送回来,并以这种方式将其插入正文。这也给了我正确的代码,但没有标签。
那么我在这里错过了什么?我假设当从 AJAX 请求加载内容时,有一些相对简单的方法可以创建选项卡。请注意,这是我正在加载的整个选项卡集 - 而不是一个选项卡。它被加载到页面加载时已经生成的同一个 div 中。