Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung PHP

Formular aktualisierung verhindern.

Mitglied: 46356

46356 (Level 2)

27.08.2008, aktualisiert 29.08.2008, 4694 Aufrufe, 11 Kommentare

Guten Abend.

Grundsätzlich geht es um die Frage, wie ich es verhindern kann, dass Formulare, bei denen entweder die Url verändert wird oder die aktualisiert werden das Input Feld geleert wird...

Und zwar habe ich ein Formular (kurzform):

<form ... action="thispage.php" ...>
Name: <input type="text" name="name">
Nachname: Hier werden Einträge aus einer Datenbank geholt und der User muss den Link schlussendlich anklicken der seinem Nachnamen entspricht: Also
<a href="?surname=A">A</a>
Das a und b entspricht dem Wert aus der Datenbank ($row->A;)
<a href="?surname=B">B</a>
<input type="submit" value="Absenden">
</form>

<-- Noch mal zusammenfassend:
Der User schreibt seinen Vornamen in das Feld (Name).
Die Datenbank holt die Nachnamen. Der User klickt seinen Namen an. Der Nachname wandert in die Url.
Das Formular wird aktualisiert :@ und das Feld Vorname (Name) wird geleert. Dies möchte ich aber verhindern!

A ja und noch ein 2.tes Problem ergibt sich bei diesem Script:
Wird das Formular abgesendet, kann ich über $_HTTP_GET_VARS['surname'] den Nachnamen nicht mehr abrufen, da er nicht mehr in der URL steht.

Anmerkung: Dies ist nur ein Beispiel und in Echt wählt der User natürlich nicht seinen Nachnamen aus gg

Liebe Grüße und ich bin gespannt auf Eure Antworten,
Alex
Mitglied: bytecounter
28.08.2008 um 09:48 Uhr
Hi Alex,

also so ganz verstanden habe ich das noch nicht. Aber warum machst Du das Ganze nicht mit Ajax? Mit einem XML-Request hast Du das Problem mit der URL nicht mehr. Die Daten kannst Du einfach in einer Session speichern.
Solange Du Daten an eine URL hängst, kann man die jederzeit problemlos (absichtlich) "verbiegen"..

vg
Bytecounter
Bitte warten ..
Mitglied: Arano
28.08.2008 um 15:46 Uhr
Moin...

hm... warum werden die Nachnamen den als Hyperlinks angegeben ?
Wenn du auf einen von denen klickst, hat das mit dem eigentlichem Formular nichts mehr zu tun und dieses wird auch __nicht__ abgeschickt !

Verwende stattdessen doch das <select> (Dropdownliste).
Dann wird beim versenden auch der Name wieder mitgeschickt (weil jetzt das Formular ja abgeschickt wird) den du dann auch wieder anzeigen lassen kannst.
01.
<?php 
02.
  echo '<input type="text" name="name" value="'.(isset($_GET['name'] && trim($_GET['name'])!='' ? $_GET['name'] : '').'">'
03.
?>
~Arano

@bytecounter: weil dann auch ein alternativer Weg her __muss__ für all die die Javascript deaktiviert haben !
Meiner Meinung nach so schon richtig, erst ohne irgendwelchen Javascript zusätzen und dann für die Javascript Freunde mit Extras "erweitern".
Bitte warten ..
Mitglied: 46356
28.08.2008 um 21:40 Uhr
Hallo Arano!

Das mit der Dropdownliste habe ich mir auch schon überlegt.
Aber bei mir hat es nicht funktioniert.

Ich erklär nun schnell die Alterantive:
Es gibt 3 Themen.
Zum Beispiel: Thema A = IT
Thema B = Programmieren
Thema C = PHP
---
hier wird der Stammbaum angezeigt.

Was ich nun genau machen möchte ist, dass alle drei Werte aus einer Datenbank ausgegeben werden.
Und zwar so, dass es drei selects gibt.
Das A select ist immer das, das als erstens angezeigt wird. Dann klickt der User auf einen Wert von A, und das 2 Select wird angezeigt (in PHP / MySQL hätte ich das so realisiert: SELECT A, B FROM Links WHERE A = '$stammbaum von A'
Wie ist es aber möglich dass das ausgewählte Feld im select Tag sofort eine Variable zugewiesen bekommmt (sprich dass das zweite select ohne einen Butten etc. automatisch mit den Werten aufscheint, die zum ausgewählten A gehören....

Laut google wäre das Zauberwort dynamisches Dropdown.

Aber das ist Javascript und ich habe überhaupt keine Ahnung wie ich das mit einer Datenbank verknüpfen kann.

---
Das mit dem Vornamen etc. war nur einen Vereinfachung. In Wirklichkeit handelt es sich um die Links, die ich bis jetzt an die URL gehängt habe...

LG. Alex
Bitte warten ..
Mitglied: bytecounter
29.08.2008 um 09:17 Uhr
Hallo,

alles was sich erst beim Client entscheidet, ist Javascript. Wenn Du es ohne JS machen möchtest, bleibt Dir nichts anderes übrig, als das Formular nach der ersten Auswahl zum Server zu schicken, und das zweite Menu mit PHP zu erzeugen.

..wobei mir gerade einfällt: Vielleicht wären verschachtelte Auswahllisten Deine Lösung:
http://de.selfhtml.org/html/formulare/auswahl.htm#menuestruktur

vg
Bytecounter
Bitte warten ..
Mitglied: 46356
29.08.2008 um 10:50 Uhr
Hallo bytecounter!

Danke für den Tip! Das wäre genauso gut... :D
Aber lassen sich damit auch drei Optionen anzeigen?
Z.b.:
IT
->Programmieren
-->PHP
-->Java
-->C#
->Betriebssysteme:
-->Windows
-->Mac
usw.

Nach selfhtml geht das nicht:
Mit <optgroup> ist in HTML und XHTML nur eine einzige tiefere Ebene möglich, innerhalb eines optgroup-Elements darf kein weiteres optgroup-Element vorkommen. Eine Menüverschachtelung über mehrere Ebenen ist daher derzeit nicht realisierbar, auch wenn diese Möglichkeit mit den Worten "könnte eventuell später mal kommen" im HTML-Standard eingeräumt wird.

Vielleicht eine Alternative?
LG. Alex
Bitte warten ..
Mitglied: bytecounter
29.08.2008 um 11:26 Uhr
Hmm...langsam wird's trickreich

Du könntest so eine Verschachtelung auch nur grafisch realisieren:
01.
<optgroup label="IT"> 
02.
  <option style="padding-left:5px;" label="...">Programmieren</option> 
03.
  <option style="padding-left:10px;" label="...">PHP</option> 
04.
  <option style="padding-left:10px;" label="...">Java</option> 
05.
  <option style="padding-left:5px;" label="...">Betriebsyssteme</option> 
06.
  .... 
07.
</optgroup>
Durch das padding rückst Du den Text einfach weiter nach rechts, wodurch Du die verschiedenen Ebenen darstellst. Hat zwar den Nachteil, dass man auch auf Programmieren klicken kann, aber da würde ich dann auf der Folgeseite einfach alle dazugehörenden Themen auflisten.

Ansonsten doch Javascript..

vg
Bytecounter
Bitte warten ..
Mitglied: 46356
29.08.2008 um 12:10 Uhr
Hallo bytecounter!

Vielen, vielen Dank für die vielen Tips :D
Die letzte Möglichkeit erwies sich bis jetzt als die beste und ich werde die nun verwenden (DANKE)

LG. Alex
Bitte warten ..
Mitglied: 46356
29.08.2008 um 13:51 Uhr
Hallo nochmals...
Es funktioniert zwar, aber wie kann ich doppelte Einträge verhindern?

01.
							<select name="select">	 
02.
							<?php 
03.
							$abfrage = "SELECT A, B, C FROM Links"; 
04.
							$ergebnis = mysql_query($abfrage); 
05.
							while($row = mysql_fetch_object($ergebnis)) 
06.
07.
							?> 
08.
 
09.
											 
10.
							<optgroup label="<?php echo $row->A; ?>"> 
11.
							  <option style="padding-left:5px;" label="<?php echo $row->B; ?>"><?php echo $row->B; ?></option> 
12.
							  <option style="padding-left:10px;" label="<?php echo $row->C; ?>"><?php echo "-->".$row->C; ?></option> 
13.
 
14.
							<?php } ?> 
15.
							</select>
Hab mal ein Bild angehängt, dann seht ihr, wie ich es meine:
59fb6dd8e7f28cb817f741c8892ca2ee-thislike - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: 46356
29.08.2008 um 13:52 Uhr
Ach ja:
Distinct bzw. GROUP BY
bringen nichts...

Sonst bin ich wieder beim Ausgangsprobel ;)
LG. Alex
Bitte warten ..
Mitglied: bytecounter
29.08.2008 um 14:00 Uhr
Um das Bsp IT->asdf->asdf nehmen:

Dann steht "asdf" ja in den Spalten B und C, oder sehe ich da was falsch?
Ansonsten müsste ich mal den Aufbau Deiner Datenbank haben, falls ich das nu falsch verstanden hab.

Eventuell hilft Dir folgender Code:

01.
... 
02.
 <option style="padding-left:5px;" label="<?php echo $row->B; ?>"><?php echo $row->B; ?></option>  
03.
<?php if ($row->B != $row->C) { 
04.
  ?> 
05.
  <option style="padding-left:10px;" label="<?php echo $row->C; ?>"><?php echo "-->".$row->C; ?></option>  
06.
  <?php 
07.
08.
?> 
09.
...
Bitte warten ..
Mitglied: 46356
29.08.2008 um 14:32 Uhr
Hallo!

asdf steht sowohl in der Spalte B und in der Spalte C (also kein Fehler im Datenbankaufruf).
Mein einziges Problem ist nun, dass wie auf dem Bild zu sehen ist, jeder Eintrag seperat gelistet ist.

Aber ich möchte gerne, dass alles das zu IT gehört zusammengehört ;)

LG. Alex
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
IPv6 Aktualisierung
gelöst Frage von trallerBatch & Shell3 Kommentare

Hallo, ich versuche gerade ein Script zu schreiben, um die IPv6 bei einem DynDNS Anbieter zu aktualisieren. Ich muss ...

Windows Server
Druckertreiber Aktualisierung über PrintServer
Frage von 34279Windows Server5 Kommentare

Hallo zusammen, ich habe hier einen Windows Server 2008 R2 der Printserver ist. Wir haben nun für einen Drucker ...

Windows Server
Aktualisierung der Gruppenmitgliedschaft in laufender Benutzersitzung
gelöst Frage von emeriksWindows Server1 Kommentar

Hi, nach meinem Kenntnisstand muss sich ein Windows Benutzer neu anmelden, damit Änderungen an seiner direkten oder indirekten Gruppenmitgliedschaft ...

Apache Server
Joomla - Aktualisierung über das Backend möglich?
Frage von FA-jkaApache Server3 Kommentare

Hallo, ich Esel hab' mich breitschlagen lassen, mich um die Homepage von einer Vereinigung zu kümmern (in der ich ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 10 StundenRouter & Routing2 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 17 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 22 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...