# Drop Down Menüs, Checkboxen und anderes ...



## SSJSon-Goten (3. September 2002)

Also ich hab mich hier schon mal ungesehen, aber was es hier schon zu den Themen gibt hat mir leider nich geholfen. Und es wird viel Text sein ... hoffentlich macht sich jemand die Mühe das ganze Zeug hier zu lesen ...

zu meinen Fragen

*Also 1. mal zu den Drop Down Menüs*
Ich hab da gleich mehrere Fragen:
1. Ich hab nun ein Dropdown Menü gemacht um einen Wert eines Benutzers zu ändern. Jetzt ist es aber so, dass wenn ich dieses Editier script aufrufe, nicht der wert kommt den der User hat, sondern immer an der 1. Stelle steht. Also hat der User den Wert 10 und ich änder beim Editieren nicht das Dropdown menü, so hat er wieder den Wert 1. Wie kann ich das also machen, das das "selected" an der richtigen stelle steht? In dem Fall, sollte sich das script den Wert des Users aus der Datenbank holen und so das select an diese Stelle setzen. Wie geht das nun?

2. Wie geht es das Dropdown menüs sich Werte aus Datenbanken holen und sich selber aktualisieren? Ich hab es schon auf seiten gesehen (Online games) das in einem Dropown menü nach einem Zeitlichen ablauf etwas geändert hat, der Wert ist dazugekommen. Dieses Online game muss ja auch über eine Datenbank laufen und ich denke mal nach dem die Zeit abgelaufen war, wurde ein neuer Wert in eine Tabelle eingetragen oder eine neue Tabelle erstellt. Wie geht dies also nun, das sie wenn ich jetzt einen Wert in meine Datenbank eintrage (ob automatisch oder manuell) sich ein Dropdown Menü aktualisiert?? Denn es ist ziemlich lästig z.B. 10 Menüs zu ändern, wegen einem neuen Wert in der Datenbank, das muss doch irgendwie gehen!

3. Ich denke dieses Problem ist etwas komplizierter als die anderen und ich hoffe das ich auf meinen Riesen Tread überhaupt eine antwort (besserer währen natürlich mehrere Antworten) bekomme.
Also es ist so. Ich habe ein Dropdown menü, welches einen Gegenstand angibt und ein 2. Welches die Anzahl angibt. Dies geht ja alles noch, ich mach das über eine Tabelle mit 2 verschiedenen Werten. Jetzt kommt das Problem. Die ausgabe ist dann so "Gegenstand ("Anzahlt")". Geb ich aber dann einen neuen Gegenstand ein und einen neue Anzahl. Wird der eine Gegenstand gelöscht und die Anzahl auch geändert. Dies ist dumm  Ich würde gerne, das wenn ich das gleiche Item noch mal anwähle, gar nichts mehr passiert ... und wenn ich ein anderes eintrage, dies zusätzlich erscheint und nicht den alten wert ersetzt. Dann hab ich logischerweise ein Problem mit der Anzahl angabe. Änder ich den Wert, wird der alte gelöscht und der neue angegeben, ich würde aber gerne, das sich die Anzahl dazu addiert! Dann wird die Anzahl ja noch für alle ausgegeben, ich würd gern noch das das Anzahl dropdown menü mit dem Gegenstand menü kommuniziert. Wähle ich einen Gegenstand aus und eine Anzahl, wird der Gegenstand erstellt und die anzahl angegeben ... wähle ich das gleiche noch mal aus, ändert sich an dem Gegestand nicht, nur die neue Anzahl wird addiert. So nun wähle ich einen anderen Gegenstand aus, und eine Anzahl. Ein neuer Gegenstand wird erstellt und angezeigt und die Anzahl gilt nur für diesen Gegenstand und wird nicht zum Wert des anderen Addiert. (Ich denke wohl, das das schwirig ist, falls es überhaupt so geht wie ich mir das vorstelle und irgendjemand kapiert hat was ich da gelabert habe  )
Dann kommt ja noch was dazu ... was ist, wenn ich das ganze Rückgängig machen will? Anzahl Subtrahieren und/oder Gegenstand löschen? geht das immer noch mit den gleichen Menüs oder muss ich da was neues machen? Lohnt es sich dann überhaupt noch Menüs zu nehmen?

... wenns ja schon alles wäre ... aber jetzt kommen die Checkboxen

*Checkboxen*
1. Wie funtkioniert überhaupt eine Checkbox? Also wie kommuniziert sie mit der Datenbank? Ich bin mir nicht so ganz sicher, aber wie eine Checkbox etwas in eine Datenbank einträgt steht schon irgendwo im Forum oder was es nur was mit löschen? naja, ich hoffe es ist mir keiner Böse wenn hier schon etwas drinsteht was es schon gibt  
Erst mal würd ich gern einfach einen Wert mit einer Checkbox in eine Tabelle eintragen? Irgendeinen Wert, einen Namen oder eine Zahl. Ich Denke ja mal das ist am ende nicht so schwer, aber ich hab keine Ahnung  

2. User sollen die Option haben sagen zu können ob z.B. ihre E-Mail angezeigt werden soll oder nicht.
Checkbox angewählt = Soll gezeigt werden
Checkbox nicht angewählt = Soll nicht gezeigt werden
Auch wenn eine Checkbox angewählt sein kann oder nicht, kann sie doch nur einen Wert zu einer Datenbank übermitteln oder? Wie kann diese Checkbox nun der Datenbank sagen, das anstatt der E-Mail ein "- Deaktiviert -" erscheinen soll oder geht dies dann leichter mit Dropdown menüs? Allerdings ist es ja so, das wenn man den Wert ändert, man ja auch nicht mehr sagen kann, das der Alte wert wieder angezeigt werden soll, da er ja gelöscht und ersetzt wurde. Läuft dieses "Anzeigen/nicht Anzeigen" dann eigentlich noch über einträge in der Datenbank ab (also außer das die Datenbank ja einen Wert ausgibt, z.B. E-mail)? Oder muss kein Wert in der Datenbank geändert werden um zu sagen das etwas angezeigt werden soll oder nicht? Es muss nicht sein, das anstatt der E-Mail ein "- Deaktiviert -" steht, es geht auch das das ganze einfach wegbleibt, lieber wärs mit irgendeinem Satz. Nur das halt, wenn die Checkbox wieder deaktiviert ist, die E-mail wieder angezeigt wird.

Ich glaub das dürfte alles zu den Checkboxen gewesen sein  

*Sonstiges*
Jetzt gibt es noch etwas, was in einem Teil hier schon erwähnt wurde.
Wie kann man es denn nun machen, das etwas nach einem Zeitlichen Ablauf passiert? Einen eintrag in der Datenbank und eine Aktualisiereung spezieller Menüs oder so? Das müsste ja irgendwie möglich sein?
Und dann noch, wie z.B. ein Satz, nach einer Zeit erscheit oder ein Link (Satz und Links sind ja im prinzip das selbe).
Dann noch, wie man z.B. durch einen Klick auf einen Link, einen Zeitlichen ablauf anfängt und dann nach einiger Zeit ein neuer Satz oder ein neuer Link erscheint? (Der Link müsste ja dann nur auf die Seite linken, wo der Zeitliche ablauf beginnt oder? Also nicht der link der nach einem Zeitlichen Ablauf ausgegeben werden sollte, logisch)
Es währe noch ganz hilfreich wenn es eine Uhr dazu geben würde die die Zeit rückwärts zählt.

Totales Anfänger und Nichtskönner geschwafel was?  Wie schon gesagt, nich bös sein, wenns etwas gibt was es schon mal hier im Forum gab, (die Suche kenn ich gut *g*) aber selbst wenn es so ist ... hätt ich doch gern noch mal alles in diesem Zusammenhang und auf einem Blick ...

Boah ... hoffentlich hilft mir einer, wie schon gesagt währen bestimmt auch mehrere gut *g*
Sollte es unverständlichkeiten geben (und die wird es bestimmt geben *g* Obwohl ich es alles noch ein paar mal gelesen habe) fragt nur, ich versuche es dann unverständlicher zu erklären  
Und für Rechtschreibfehler übernehm ich keine Haftung  Denn das ist verdammt viel Text ... aber Geschichten schreiben konnte ich schon immer gut


----------



## dave_ (4. September 2002)

@1
Du musst einfach überprüfen ob der wert in der datenbank identisch mit dem wert des select feldes ist (dein value='wert')

angenommen du hast
<option value="abc">Abc</option>

deine variable aus der datenbank heisst $dbvalue.

print "<option value=abc";
if($dbvalue=="abc") print " selected";
print ">";



@2

einen einzelen select kannst du nicht mit php aktualisieren, da musst du die komplette seite aktualisieren, mit metatags zum beispiel.

@3

das schafft mein müder kopf jetzt nicht mehr *g* 
am besten ist es wenn du beispiele hochstellst, auch wenn es nur die blanken formulare ohne aktionen sind.

den rest lese ich morgen oder so, muss relativ früh raus, gn8


----------



## Dario Linsky (4. September 2002)

zu den comboboxen:
die erste und die dritte frage versteh ich nicht so ganz, zur zweiten kann ich folgendes sagen:
normalerweise kann man daten nur aus einer datenbank abfragen, wenn man ein serverseitiges script laufen lässt. im klartext heisst das, dass man die seite neu laden muss, wenn man daten aus einer datenbank in den quelltext einfügen will.
allerdings gibt es ein paar tricks, mit denen man das umgehen kann. da werd ich aber jetzt nicht näher eingehen, weil es zu viel aufwand ist.
wenn du einfach nur den inhalt einer combobox ändern willst, geht das relativ schnell und einfach mit javascript.

zu den checkboxen:
eine checkbox kommuniziert überhaupt nicht mit einer datenbank. du kannst nur den wert einer checkbox über ein formular an ein zweites script übergeben. das zweite script trägt den wert dann in die datenbank ein. ausserdem ist eine checkbox binär, d.h. sie ist entweder aktiviert (true bzw. ungleich 0) oder nicht aktiviert (false bzw. 0).
wenn du also eine checkbox hast mit dem namen "allow_email", dann kannst du den wert daraus an ein zweites script übergeben. das zweite script holt sich den wert dann und schreibt ihn in die datenbank.

zu dem sonstigen:
das mit der verzögerung lässt sich soweit ich weiss in php nicht sonderlich gut umsetzen, weil der server ein script nur ausführt, solange es nicht zu viel rechenzeit benötigt. wenn ich damit unrecht haben sollte, lass ich mich aber gerne belehren.


ich hoffe, das hat jetzt jeder verstanden.


----------



## SSJSon-Goten (4. September 2002)

Also ich glaube ich sollte erst mal was fragen.

Ich würde gerne Ein Item und eine Anzahl eintragen.
Wähle ich das Item dann noch mal an, soll nur die Anzahl zahl dazu Addiert werden.
Wenn ich nun aber gerne 2 Items eintragen möchte und noch eine Anzahl, sollte sich das nicht auf das Item und die Anzahl des Items auswirken, welches schon eingetragen ist! Verstanden? Ich hoffe es  Es soll natürlich auch gehen, wenn ich 10 verschiedenen Items eintragen möchte ... nur halt das sich dann die Anzahl der einzelnen Items nur auf diese Auswirkt und nicht auf die anderen. Diese ganze Geschichte möchte ich aber wieder Rückgängig machen können, d.h. Items auch wieder wegnehmen, also die Anzahl reduzieren, oder das Item ganz löschen.
Ich würde erst mal dazu einen Vorschlag hören, wie dies am einfachsten ohne viele Formular-Teile zu erledigen wäre.
Wenn ich darauf eine lösung habe, komme ich auf die anderen Sachen zurück, vielleicht war das wirklich zu viel auf einmal, sorrry


----------



## dave_ (4. September 2002)

mache ein beispiel, mach dein html formular und uppe das.

Ich habe keine lust mir deinen text 1000 mal durchzulesen bis ich nach und nach endlich alles aufgereiht habe, und mich noch konzentrieren muss damit alles im kopf bleibt 

(bis jetzt habe ich es nur einmal gelesen  )


----------



## SSJSon-Goten (23. September 2002)

*Nach längerer Zeit...*

...habe ich so einiges gelernt *g*

Also, die DropDown Menüs zu updaten is denke ich nur ein kleines problem:

```
<select name="inhalt">
 <option value="0"></option>
  $inhalt
</select>
```

Ich hab mir das von einem (WBB2)Forum angeschaut ... das gibt die Datensätze aus und diese sind in einer Variable gespeichert, wenn man diese durch Datenbank Einträge stützt wird sie ja immer erneuert, sobald neue einträge vorhanden sind, so könnte es gehen. (noch nicht getestet)

Das mit dem Selected ist auch kein Problem mehr.

Checkboxen sind nicht so wichtig, das mache ich mit DropDown Menüs und IF abfragen.

Es gibt aber weitere Probleme und die einträge die ich im Forum gefunden habe, helfen mir leider nicht so sehr weiter  

Ich brauche hilfe zur Funktion "timestamp"
Ich möchte das eingeloggte User gezählt, und angezeigt werden - nur der Username. und wenn man auf den Usernamen klickt, sollen alle einträge aus der Tabelle angezeigt werden, aber das soll auch mit einer liste aller user gehen und nicht nur mit einer wo die drauf sind, die Online sind.

Wenn sich ein User anmeldet, wird in der Tabelle unter "time", mit der Option "timestamp" das z.B. abgespeichert: 20020923163954

Ist ja schön und gut, aber wie aktualisiere ich diesen Wert, wenn sich ein user einloggt, ich habs probiert, aber der Wert wird nicht eingetragen, es bleiben immer nur nuller!? Und was muss gemacht werden, wenn sich der user wieder ausloggt?

Und wie kann ich dann die user anzeigen die Online sind? (dazu hab ich hier im Forum glaub ich schon einen Tread gefunden, den ich aber erst voll ausprobieren kann, wenn ich weiß wie das mit dem Timestampt und time() und allem funtzt, bitte helft mir


----------



## loki2002 (23. September 2002)

ok, kann Dave nur zustimmen... 

an deiner stelle wuerde ich es erstmal mit PHP Lernen versuchen.. ansonsten haste mit php/mysql keine freude und ich glaube das forum hat auch keine lust auf die wirklich einfachsten fragen wie zb. "Wie bekomme ich ein timestamp.. etc" zu beantworten.

soory, ist nicht boese gemeint.. aber es hilft Dir mehr wenn Du PHP von anfang an lernst und vorallem auch mal selber probierst!


----------



## SSJSon-Goten (23. September 2002)

ok, vielen dank für nichts, aber das hab ich net nötig! Ich bekomm schon irgendwo anders her meine Hilfe! "Wie komme ich an Timestamp" naja ... schon gelöst, dran gekommen bin ich, aber wie ich das durchs einloggen aktualisiere hab ich net hinbekommen ... naja ****** drauf ... lernen tu ich das die ganze Zeit ... da bekomm ich den mist auch noch hin ...


----------



## dave_ (23. September 2002)

wenn du uns noch verraten würdest, wie du es versucht hast, könnten wir vielleicht helfen.

das ist doch nur ein simples update.

UPDATE tabelle SET time='$time' WHERE id='$userid'


----------



## SSJSon-Goten (23. September 2002)

genau so hab ich es doch geschrieben ^^'' Ich weiß das es ein Update is ^^'

Und ich war einfach nur dumm ... sorry -_- ... der hatte die falsche Variable übernommen ... das script wusste gor net welcher ID er die Aktualisierung zuteilen sollte ... es funtzt jetzt zumindest! Dummer fehler ...


----------



## loki2002 (24. September 2002)

mysql hat ebenfalls nuetzliche Date und Time funktionen die man durchaus auch mal nutzen kann/sollte .. 

Link 

es muss ja nicht immer der standart PHP timestamp(); sein


----------

