YourWBB


yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB Lite 1.0.x » [WBB Lite 1.0.x] Allg. Fragen und Probleme » DropDown über functions.php » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 2.190 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Dieses Thema wurde als erledigt markiert. Thread erledigt

Zum Ende der Seite springen DropDown über functions.php
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
#AHBL
Alternativ Mitglied


Dabei seit: 05.02.12
Beiträge: 134

 DropDown über functions.php Antworten Zitieren Editieren Melden       UP

Problembeschreibung:
Hallo, ich habe für meine User eine Art Filebase erstellte eine kleine wo sie Kategorien jeder für sich anlegen kann und dann Einträge dazu anlegen und bearbeiten können nur habe ich noch ein Problem was ich nicht selber gelöst bekomme. Um einen Eintrag jetzt einer Kategorie zu zuordnen müssen sie die ID der Kategorie angeben sprich, ich hab ein input Feld wo sie die ID der Kategorie eintragen wo der Eintrag drunter angezeigt werden soll doch möchte ich lieber ein DropDown haben wo alle Kategorien aufgelistet sind die der User X für sich angelegt hat.

Also habe ich in der function.php geschaut wie das bei dem DropDown im ACP bei den Board anlegen gemacht wurde also habe ich folgendes in der function hinzugefügt (habe es dann kopiert und angepasst also es versucht)

php:
1:
2:
3:
4:
5:
6:
function makecatoptions($catid$selected=0) {
   $out .= "<option value=\"".$cat[catid]."\"".ifelse($selected==1" selected").">";
   $out .= str_repeat("".$cat[name]."</option>";
   else $out .= $cat[name]."</option>";
   $out.=makecatoptions($cat[catid],$selected);
}


Dann in der filebase.php im ADD Teil folgendes
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
if(isset($_POST['send'])) {
$db->query("INSERT INTO bb".$n."_filebase (id,userid,info,catid) VALUES(NULL,'$wbbuserdata[userid]','".addslashes(htmlspecialchars($info))."','$catid')");
header("Location: filebase.php?action=own");
exit();
}
$result_drop $db->query("SELECT catid, info  FROM bb".$n."_filebase_cat WHERE userid = '$wbbuserdata[userid]'");
while ($row $db->fetch_array($result_drop)) $cat_options makecatoptions(0);
eval("\$tpl->output(\"".$tpl->get("filebase_entriesadd")."\");");
}

Im Edit Teil
if(isset($_POST['send'])) {
$db->query("UPDATE bb".$n."_filebase SET info='".addslashes(htmlspecialchars($info))."', catid='".addslashes(htmlspecialchars($catid))."' WHERE id='$id'");
header("Location: filebase.php?action=own");
exit();
}

$result_drop $db->query("SELECT catid, info FROM bb".$n."_filebase_cat WHERE userid = '$wbbuserdata[userid]'");
while ($row $db->fetch_array($result_drop)) 
$cat_options makecatoptions(0,1,1,$row['catid']);

eval("\$tpl->output(\"".$tpl->get("filebase_entriesedit")."\");");
}


Nun ist mein Problem, dass ich die ID der Kategorie nicht in die Datenbank so bekomme den diese bleibt auf 0 ob ich einen neuen Eintrag erstelle oder einen bearbeite und nun weiß ich nicht ob es wirklich nötig ist, das ganze in der function.php zu machen oder ob man sowas auch anders lösen kann das ich nur den Namen im DropDown der Kategorie auswähle er die richtige ID bei einem Neuen Eintrag in die DB schreibt und beim bearbeiten eines Beitrages.

So sieht es in dem ADD Template aus
code:
1:
2:
3:
4:
5:
6:
7:
<tr>
   <td bgcolor="{tablecolora}" id="tableb"><b>Kategorie:</b></td>
   <td bgcolor="{tablecolora}" id="tablea"><select name="cat">
    <option value="0">keine</option>
    $cat_options
   </select></td>
  </tr>


Und so sieht es im EDIT Template aus
code:
1:
2:
3:
4:
5:
6:
7:
<tr>
   <td bgcolor="{tablecolora}" id="tableb"><b>Kategorie:</b></td>
   <td bgcolor="{tablecolora}" id="tablea"><select name="cat">
    <option value="0">keine</option>
    $cat_options
   </select></td>
  </tr>


Um eine passende Lösung wäre ich sehr dankbar oder eine Aufklärung wie man das Problem gelöst bekommt.

Grüße

Fehlermeldung:


Link zum Forum und Screenshot (KEINE Bilderhoster, per Dateianhang):


Was wurde zuletzt geändert oder eingebaut?
03.02.13 23:05 #AHBL ist offline E-Mail Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Hallo,

Du hast folgende Funktion erstellt:
php:
1:
2:
3:
4:
5:
6:
function makecatoptions($catid$selected=0) {
   $out .= "<option value=\"".$cat[catid]."\"".ifelse($selected==1" selected").">";
   $out .= str_repeat("".$cat[name]."</option>";
   else $out .= $cat[name]."</option>";
   $out.=makecatoptions($cat[catid],$selected);
}

Die Funktion enthält zwei Parameter "catid" und "selected".

Nun rufst du die Funktion mit folgenden Befehl auf:
php:
1:
$cat_options makecatoptions(0,1,1,$row['catid']);

Hier übermittelst du jedoch vier Parameter.
Somit hast du die Funktion überladen.
Um deine Funktion aufzurufen, musst du dort zwei Parameter entfernen und die "catid" als ersten Parameter angeben, damit dieser auch als "catid" erkannt wird und nicht als "selected".

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Schrimm: 05.02.13 15:40.

05.02.13 15:40 Schrimm ist offline Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB Lite 1.0.x » [WBB Lite 1.0.x] Allg. Fragen und Probleme » DropDown über functions.php