0

PHPとspryのようなものを使用してmysqlの2つの異なるテーブルからデータを表示しようとしています。元々、spryタブ付きパネルを使用したかったのですが、それが可能かどうかはわかりません。タブ名を1つのテーブルから入力し、そのタブの内容を別のテーブルから入力する必要があります。これが基本的なhtmlです...

<div id="TabbedPanels1" class="TabbedPanels">
  <ul class="TabbedPanelsTabGroup">
    <li class="TabbedPanelsTab" tabindex="0">NAME_1 POPULATED FROM FIRST TABLE</li>
    <li class="TabbedPanelsTab" tabindex="0">NAME_2 POPULATED FROM FIRST TABLE</li>
  </ul>
  <div class="TabbedPanelsContentGroup">
    <div class="TabbedPanelsContent">
    <table border="0" cellspacing="5" cellpadding="5">
        <tr>
<!-- CONTENT POPULATED FROM SECOND TABLE!-->
          <td width="450">&nbsp;</td>
          <td width="50">&nbsp;</td>
          <td width="50">&nbsp;</td>
          <td width="50">&nbsp;</td>
          <td width="50">&nbsp;</td>
        </tr>
      </table></div>
   </div>
</div>
</div>

私が抱えていると思う問題は、タブとコンテンツを接続できないことです。タブは最初にhtmlにリストされているので...次にコンテンツ。これが可能かどうか、またはもっと良い方法があるかどうかはわかりません。

4

1 に答える 1

0

それはあなたが得たい最終結果に少し依存します。例えば:

テーブルから取得したタブのリストと、別のDBテーブルから完成したコンテンツだけが必要な場合は、テーブルごとに1つずつ、2つのクエリを実行し、結果を変数に保存する必要があります。次に、変数内のHTML構造を完成させ、最後にこの変数のエコーを実行できます。

// $result1 has the info of the tab names.
// $result2 has the contents of each tab.
$final_html='<div id="TabbedPanels1" class="TabbedPanels">
             <ul class="TabbedPanelsTabGroup">';

while($row1=$result1->mysqli_fetch_array()){
     $final_html.="<li class=\"TabbedPanelsTab\" tabindex=\"0\">$row1[0]</li>";
}

$final_html.='</ul><div class="TabbedPanelsContentGroup">
              <div class="TabbedPanelsContent">
              <table border="0" cellspacing="5" cellpadding="5">
              <tr>';

while($row2=$result2->mysqli_fetch_array()){
     $final_html.="<td width=\"450\">$row2[0]</td>";
}

$final_html.='</tr></table></div></div></div></div>';

echo $final_html;

問題がタブを機能させる方法である場合は、Jqueryを使用することをお勧めします。

主なアイデアは、タブとタブのコンテンツで同じ変数に基づくIDを使用することです。たとえば、1つのタブに「tab1」という名前を付け、そのコンテンツに「tab1content」という名前を付けることができます。

Jqueryの部分で詳細が必要な場合は、コードの一部を投稿して、これらのタブがどのように機能するかを確認してください。

于 2012-11-06T15:30:13.550 に答える