Dropdownfelder

Die Scriptsprache PHP fĂĽr die Gestaltung von dynamischen Websites.

Beitragvon mrlinks » Di 21 Sep, 2004 20:44

Hi nauti

Danke erstmal fĂĽr deine Hilfe!!!

So alles mal mit Kommentaren versehen könntest du dir das ganze durchsehen ob ich das richtig verstanden habe.
Einige :-? hab ich auch noch hinzugefĂĽgt kannst dir sicher denken was ich damit meine.


[php]<a href="?add=category">Kategorien hinzuf&uuml;gen </a>
<script language="javascript" type="text/javascript">
function switchCategory()
{
var URL = document.switchEntry.choose.options[document.switchEntry.choose.selectedIndex].value;
window.location.href = "?categ="+URL;
}
</script>
<?php
include ("connect.php");
connect_to_test();

if($_POST['addCat']) //???
{
if(!empty($_POST['addCategoryName'])) //Wenn eine Kategorie ID angegeben war
{
$query = "insert into kategorie (idKategorie, Name) values ('', '".addslashes($_POST['addCategoryName'])."');"; //Insert anweisung fĂĽr SQL
$res = mysql_query($query) or die(mysql_error()); //Eintragung in die Datenbank
if($res){ //Wenn die Variable $res true ist
echo "<br><pre>'".$_POST['addCategoryName']."' erfolgreich zu den Kategorien eingetragen!</pre>\r\n"; //wird das echo ausgegeben
}
} else {
echo "<br>Bitte einen Kategorienamen angeben!\r\n"; //Wenn kein Kategorienamen eingegeben wurde
}
}
if($_POST['addUnderCat']) //??? wo kommt das her ['addUnderCat']
{
if(!empty($_POST['addUnderCategoryName'])) //wenn eien Unter kategorie angegeben wurde
{
$query = "insert into unterkategorie (idUnterkategorie, u_name, idKategorie) values ('', '".addslashes($_POST['addUnderCategoryName'])."', ".$_GET['categ'].");"; //Insertanweisung ab ('', '".addslashes ????
$res = mysql_query($query) or die(mysql_error());
if($res){
echo "<br><pre>'".$_POST['addUnderCategoryName']."' erfolgreich zu den UnterkategorienKategorien eingetragen!</pre>\r\n"; //Wenn Insert erfolgreich war
}
} else {
echo "<br>Bitte einen Unterkategorienamen angeben!\r\n"; //wenn Insert nicht erfolgreich war
}
}

if($_POST['submit']) //Wenn der Submit Button gedrĂĽckt worden ist
{
echo "<br><pre>'".$_POST['ucat']."' gewählt </pre>\r\n"; //Ausgabe welch Unterkategorie ausgewählt wurde
}

$query = "select * from kategorie order by idKategorie desc;"; //Abfrage der Kategorie
$result = mysql_query($query) or die(mysql_error()); //Ausgabe von der Datenbank

echo "<form name=\"switchEntry\" method=\"post\" action=\"?categ=".$_POST['list']."\">\r\n"; //Anfang des Formulares ??? action=\"?categ=".$_POST['list']."\">\r\n"; ???
echo "<select name=\"choose\" onChange=\"javascript:switchCategory();\">\r\n"; //Anfang der Selectanweisung, wenn eine Ă„nderung dann Javascript
echo "<option>wählen</option>\r\n"; //Standerwert des Dropdownfeldes
while($row = mysql_fetch_assoc($result)) //Ausgabe aus der Datenbank oder ???
{
if($_GET['categ'] == $row['idKategorie']) //Vergleichen ob die Werte gleich sind
{
$selected = "selected"; //??????
}
echo "<option value=\"".$row['idKategorie']."\" ".$selected.">".stripslashes($row['Name'])."</option>\r\n"; //????
$selected = "";
}
echo "</select>\r\n";
echo "</form>\r\n"; //ende der Selectanweisung und des Formulares

if(is_numeric($_GET['categ'])) //????
{
$query = "select * from unterkategorie where idKategorie = ".$_GET['categ']." order by idUnterkategorie;"; //Abfrage (MYSQL) wenn $_GET['categ'] gleich der ID Kategorie ist
$result = mysql_query($query) or die(mysql_error()); //Ausgabe von der Datenbank

echo "<form name=\"switchUnderEntry\" method=\"post\"\">\r\n";
echo "<select name=\"ucat\">\r\n";

if(mysql_affected_rows() == 0){
echo "<option>zur Zeit gibt es keine Unterkategorien!</option>\r\n"; //Wenn keine Unterkategorie fĂĽr diese Kategorie vorhanden ist
}
while($row = mysql_fetch_assoc($result)) //wenn nicht dann....
{
echo "<option>".stripslashes($row['u_name'])."</option>\r\n"; //??????
}
echo "</select>\r\n";
echo "<input type=\"submit\" value=\"go\" name=\"submit\">\r\n"; //Button zum Abschicken
echo "</form>\r\n";

?>
<form name="addUnderCategory" method="post" action="">
Unterkategorie hinzufĂĽgen: <input type="text" name="addUnderCategoryName" value="">
<input type="submit" name="addUnderCat" value="add">
</form>
<?

} else {
?>
<form name="addCategory" method="post" action="">
Kategorie hinzufĂĽgen: <input type="text" name="addCategoryName" value="">
<input type="submit" name="addCat" value="add">
</form>
<?
}

?> [/php]

Bitte noch mal um deine Hilfe!!
Danke
mrlinks
Neu im Board
Neu im Board
 
Beiträge: 8
Registriert: So 05 Sep, 2004 20:14

Beitragvon nauti » So 26 Sep, 2004 12:28

sorry wegen der späten antwort ... war in kroatien am meer segeln und baden :)

---

[php]if($_POST['addCat']) //???[/php]

ist, wenn du den add button klickst:

Code: Alles auswählen
<input type="submit" name="addCat" value="add">

name von diesem button ist "addCat"

das $_POST macht man, weil in der php.ini file register globals off sein könnte, und somit der aufruf

[php]if($addCat) { ... } [/php]
... fehlschlagen wĂĽrde!

---

[php]
if(!empty($_POST['addCategoryName'])) //Wenn eine Kategorie ID angegeben war[/php]

Selbes wie oben: Wenn das addCategoryName input feld NICHT (das sagt das "!" ) leer ist (keine eingabe), dann ...

---

[php]if($_POST['addUnderCat']) //??? wo kommt das her ['addUnderCat'] [/php]

selbes wie oben, das ist der name des buttons... also wenn der geklickt wurde.

---

[php]$query = "insert into unterkategorie (idUnterkategorie, u_name, idKategorie) values ('', '".addslashes($_POST['addUnderCategoryName'])."', ".$_GET['categ'].");"; //Insertanweisung ab ('', '".addslashes ????[/php]

('', '".addslashes($_POST['addUnderCategoryName'])."', ".$_GET['categ'].");"

=> der 1. wert: '' ist die automatisch ansteigende id (auto_increment).
der 2. wert ist der name der Unterkategorie mit addslashes() funktion. schau mal im manual nach: www.php.net/addslashes benutz man, wenn man in der php.ini file die magic quotes abgestellt hat, stripslashes/( ist das gegenteil (entfernt die slashes bei den anfĂĽhrungszeichen).
der 3. wert ist der wert, der in der URL steht, den hole ich mit mit $_GET wegen register globals wie oben bei $_POST.

---

[php]echo "<form name=\"switchEntry\" method=\"post\" action=\"?categ=".$_POST['list']."\">\r\n"; //Anfang des Formulares ??? [/php]

richtig, aber da hab ich was vergessen zu löschen.... richtig wäre:

[php]echo "<form name=\"switchEntry\" method=\"post\">\r\n";[/php]
also das ganze ohne dem "action" attribut. das war von einer zwischenversion versehentlich drinnengeblieben.

---

[php]while($row = mysql_fetch_assoc($result)) //Ausgabe aus der Datenbank oder ???
{
if($_GET['categ'] == $row['idKategorie']) //Vergleichen ob die Werte gleich sind
{
$selected = "selected"; //??????
}
echo "<option value=\"".$row['idKategorie']."\" ".$selected.">".stripslashes($row['Name'])."</option>\r\n"; //????
$selected = "";
}
[/php]

solange mysql_fetch_assoc($result) true ergibt (also aus der datenbankabfrage in assoziatives array erstellt werden kann), werden die 2 id werte der kategorie verglichen. das ist dazu, dass die selection des dropdownfeldes nach dem wählen erhalten bleibt. $selected = "selected"; ist dazu da, dass das dann in den option feld steht, damit die selection des feldes wie gesagt markiert ist. $selected = ""; setzt die variable dann wieder auf leer, also die selection kann nur genau mal stattfinden. etwas kompliziert erklärt, aber besser kann ichs glaub ich nicht *gG*.

---

[php]if(is_numeric($_GET['categ'])) //????
{ ... }
[/php]

Wenn in der URL ein categ wert angegeben ist, der eine nummer ist... in etwa so... index.php?categ=2 ... wĂĽrde true ergeben.

---

[php]echo "<option>".stripslashes($row['u_name'])."</option>\r\n"; //?????? [/php]

Selbes wie oben, fĂĽllen des opion feldes mit dem namen der unterkategorie.

Hoffe ich habe nix vergessen.

Ciao Nauti
nauti
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 30
Registriert: Mo 29 Dez, 2003 18:53

Beitragvon nauti » So 26 Sep, 2004 12:31

was mit den php tags los is weiĂź ich nicht, liegt aber sicher nicht an mir!

seltsam!
nauti
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 30
Registriert: Mo 29 Dez, 2003 18:53

Vorherige

ZurĂĽck zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste