我的 Web 应用程序有一个“小”大问题。首先,我必须承认,我的英语不太好:)。
我已经实现了非常简单的基于 ajax(由 jquery 提供支持)的 html+css-Tabs,并且每个 Tab 请求一个单独的 PHP 站点。每个站点都包括分钟。一种带有 php-values 和其他 jquery-effects/-plugins 的表单。
主要问题是每个选项卡中的表单视图。加载 ajax 的表单显示不完整,其他表单完全空白。我找到了问题并删除了其中一个字段集中的 PHP 代码,最后我显示了这个字段集,而表单的其余部分为空白。
如果我只使用基于 css 的选项卡而没有 ajax 功能,则表单会完全加载。
ajax有什么问题?我不明白:P
这是其中一种形式的一部分:
<form action="#" method="post" name="form_project" class="form_project mainform">
<input type="hidden" name="uid" value="<?= issetGlobals('uid') ?>" />
<table border="0" id="tbl-projects" cellspacing="0" cellpadding="5">
<tr>
<td colspan="2"><input type="checkbox" name="cb_newProject" onclick="actFieldset('#fs-newProject')" /> <label for="cb_newProject">Projekt erstellen</label></td>
</tr><tr>
<td>
<fieldset id="fs-newProject" disabled="disabled"><legend>Projektverzeichnis erstellen</legend>
<table border="0">
<tr>
<td><label for="projectName">Projektname</label></td>
<td><input type="text" name="projectName" value="" /></td>
</tr><tr>
<td><label for="projectManager">Projektleiter</label></td>
<td><select size="1" name="projectManager" id="projectManager">
<?php
foreach($DBma->getEmployees() as $value) {
if($value['uid'] == issetGlobals('uid'))
echo '<option value="'.$value["uid"].'" selected="selected">'. convertString($value["name"]) .'</option>';
else
echo '<option value="'.$value["uid"].'">'. convertString($value["name"]) .'</option>';
}
?>
</select>
</td>
</tr>
这里是“转换”的 JS 代码:
$('#tabs-nav li').each(function(i) {
$(this).click(function(event){
event.stopPropagation();
Tab($(this).attr('id'));
});
});
function Tab(key){
$('#tabs-nav li').each(function() {
$(this).removeClass('active');
})
$(key).addClass('active');
$.ajax({
url: 'tab-content.php?tab=' + key,
type: 'get',
beforeSend: function() {
$(key + '-loading').html('<img src=\'images/ajax-loader.gif\' width=\'16\' height=\'16\' alt=\'Loading\' />');
}
}).done(function(responseText) {
$(key + '-loading').html("");
$('#tabs-content').html(responseText);
});
}