Hallo, Forumgemeinde,
irgendwie drehen sich die Gedanken im Kreis und ich sehe den Wald vor lauter Bäumen nicht mehr. Ich lege in einem Formular eine Baumstruktur an, aus der später ein Klappmenu werden soll. Hierbei soll nach Klick die jeweilige Unterkategorie ausgeklapt, bzw. eingeklappt werden. Bis zur 2. Ebene funktioniert es ja auch, in dem ich einfach in der kategorie_parent_child tabelle nach den Einträgen suche, wo die parentid übereinstimmt. aber es funktioniert ebend nur über 2 Ebenen. Das Menu kann aber n-fach verschachtelt sein. Habt Ihr da irgendwo einen Lösungsansatz?
Hier der Script zum anlegen.
Zeilenumbrüche eingefügt
irgendwie drehen sich die Gedanken im Kreis und ich sehe den Wald vor lauter Bäumen nicht mehr. Ich lege in einem Formular eine Baumstruktur an, aus der später ein Klappmenu werden soll. Hierbei soll nach Klick die jeweilige Unterkategorie ausgeklapt, bzw. eingeklappt werden. Bis zur 2. Ebene funktioniert es ja auch, in dem ich einfach in der kategorie_parent_child tabelle nach den Einträgen suche, wo die parentid übereinstimmt. aber es funktioniert ebend nur über 2 Ebenen. Das Menu kann aber n-fach verschachtelt sein. Habt Ihr da irgendwo einen Lösungsansatz?
Hier der Script zum anlegen.
PHP-Code:
<?php
/*
ToDo
*/
include "../../zentrale/head.php";
include "../../zentrale/tabellen.php";
include "../../zentrale/comein.php";
?>
<link rel="stylesheet" type="text/css" href="../../zentrale/admin.css">
</head>
<body class="show">
Kategorie Einfügen<br>
<?php
$id = $_POST[id];
$kategorie = $_POST[kategorie];
$kategorieId = $_POST[kategorieId];
$bild = $_POST[bild];
$anlegen = $_POST[anlegen];
if ( isset( $anlegen ) ){
$sqlbefehl = "INSERT INTO $MySql_kategorie ";
$sqlbefehl .="( beschreibung ) ";
$sqlbefehl .="VALUES ";
$sqlbefehl .="( '$kategorie' ) ";
mysql_query($sqlbefehl) or die("Error:". mysql_error());
$kategorie = mysql_insert_id();
$sqlbefehl = "INSERT INTO $MySql_kategorie_parent_child ";
$sqlbefehl .="( parent, kategorie ) ";
$sqlbefehl .="VALUES ";
$sqlbefehl .="( $kategorieId, $kategorie ) ";
mysql_query($sqlbefehl) or die("Error:". mysql_error());
}
$aktTiefe = 1;
function einruecken( $tiefe ) {
$leerRaum = " ";
for( $i = 0 ; $i < $tiefe ; $i++ ){
$einrueckung = $einrueckung . $leerRaum;
}
return $einrueckung;
}
function kindSuchen( $parent ){
global $sqlhandle, $MySql_kategorie, $MySql_kategorie_parent_child, $aktTiefe,
$kategorieTabelle;
$aktTiefe++;
$sqlbefehlKategorieChild = "SELECT $MySql_kategorie.* FROM $MySql_kategorie";
$sqlbefehlKategorieChild .= " LEFT JOIN $MySql_kategorie_parent_child ON
$MySql_kategorie.id = $MySql_kategorie_parent_child.id";
$sqlbefehlKategorieChild .= " WHERE $MySql_kategorie_parent_child.parent
= $parent";
$sqlbefehlKategorieChild .= " ORDER BY $MySql_kategorie.beschreibung ASC ";
$abfrageKategorieChild = mysql_query($sqlbefehlKategorieChild);
if( mysql_num_rows($abfrageKategorieChild) > 0 ){
for( $i = 0 ; $i < mysql_num_rows( $abfrageKategorieChild ) ; $i++ ){
$id = mysql_result( $abfrageKategorieChild , $i, "id");
$beschreibung = mysql_result( $abfrageKategorieChild , $i, "beschreibung");
$tiefe = einruecken( $aktTiefe );
print " <tr align='LEFT' valign='TOP'>\n";
print " <td><input type='radio' name='kategorieId' value='$id'></td>\n";
print " <td colspan='2'>" . $tiefe . $beschreibung . "</td>\n";
print " </tr>\n";
$kategorieTabelle->tabellenLeereZeile( 5 );
kindSuchen( $id );
}
}
$aktTiefe--;
}
$kategorieTabelle = new htmlTabelle( "LEFT" , "TOP" , "" , "" ,"false" , "Kategorie" ,
"Button" , 25 , "Leerraum" , 10 , "Text" , 400 );
$kategorieTabelle->tabellenLeereZeile( 5 );
print " <form name='Neuanlegen' action='einfuegen.php' method='post'
enctype='multipart/form-data'>\n";
$kategorieTabelle->tabellenLeereZeile( 5 );
$kategorieTabelle->tabellenLinie();
$kategorieTabelle->tabellenLeereZeile( 5 );
print " <tr align='LEFT' valign='TOP'>\n";
print " <td colspan='3'>Bitte wählen Sie, an welchem Platz die neue Kategorie
angeordnet werden soll.</td>\n";
print " </tr>\n";
$kategorieTabelle->tabellenLeereZeile( 5 );
$kategorieTabelle->tabellenLinie();
$kategorieTabelle->tabellenLeereZeile( 5 );
print " <tr align='LEFT' valign='TOP'>\n";
print " <td><input type='radio' name='kategorieId' value='0' checked></td>\n";
print " <td colspan='2'>Hauptkategorie</td>\n";
print " </tr>\n";
$kategorieTabelle->tabellenLeereZeile( 5 );
/*
Tabelle Kategorie rekursiv auslesen
*/
kindSuchen( 0 );
$kategorieTabelle->tabellenLeereZeile( 5 );
$kategorieTabelle->tabellenLinie();
$kategorieTabelle->tabellenLeereZeile( 5 );
print " <tr align='LEFT' valign='TOP'>\n";
print " <td>Kategorie:</td>\n";
print " <td><img src='../../images/transparent.gif' width='1' height='1'></td>\n";
print " <td><input type='text' name='kategorie' size='40' maxlength='50'
class='eingabe_input' value='" . $artikelnummer ."'></td>\n";
print " </tr>\n";
$kategorieTabelle->tabellenLeereZeile( 5 );
$kategorieTabelle->tabellenLinie();
$kategorieTabelle->tabellenLeereZeile( 5 );
print " <tr align='LEFT' valign='TOP'>\n";
print " <td><img src='../../images/transparent.gif' width='1' height='1'></td>\n";
print " <td colspan='2'><input type='submit' name='anlegen' value='Neu anlegen'
class='eingabe_input'></td>\n";
print " </tr>\n";
print "</form>";
$kategorieTabelle->tabellenFuss();
print "</body>\n";
print "</html>\n";
?>
Kommentar