Web アプリケーションに「少し」大きな問題があります。最初に、私は英語があまり得意ではないことを告白しなければなりません:)。
ajax (jquery を利用) に基づく非常に単純な html+css-Tabs と、各タブが個別の PHP サイトを要求することを実現しました。すべてのサイトには最小が含まれています。php-values と他の jquery-effects/-plugins を含む 1 つのフォーム。
主な問題は、すべてのタブのフォーム ビューです。ajax をロードしたフォームは完全ではなく、他のフォームは完全に空白でした。問題を特定し、いくつかのフィールドセットの 1 つで PHP コードを削除します。最後に、この 1 つのフィールドセットを表示し、フォームの残りの部分は空白でした。
CSS ベースのタブのみを使用し、ajax 機能を使用しない場合、フォームは完全に読み込まれます。
ajaxの問題は何ですか?私はそれを理解していません:P
以下は、フォームの 1 つの一部です。
<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);
});
}