Carposept: Bitte sammle Beitragspunkte mit sinnvollen Beiträgen!
Hier geht es nicht darum, wer die meisten hat...
Beiträge von Arne Drews
-
-
Bitte bei Interesse per PN an TuX wenden.
[MOD: geschlossen]
-
Gefällt mir jetzt nicht so. Soll aber keine Kritik sein, jeder so wie er es mag...
-
Sammelst Du Beiträge?!
Poste bitte relevante Beiträge zu den Themen! -
Tolle Idee... mail() gibt ein bool zurück, was - lass mich raten - true oder false ist.
Was genau bringt das jetzt dem TE?! Kurze Info, bevor Du antwortest: true bedeutet nicht zwingend, dass die Mail versendet wurde!
Der Rückgabewert von mail() ist genau genommen komplett unwichtig... -
Zitat
Foren sterben ja fast so schnell aus wie Printverläge. Witzig, dass es hier aber am Tonfall liegt (auch in Hinblick auf eure anderen Beiträge)
Ein Text in schriftlicher Form hat immer den Tonfall, den der Lesende interpretiert!
Wenn Foren aussterben, hat das u.a. sicher damit zu tun, dass es Leute gibt, die Hilfe in Foren erwarten, sich aber dann zu fein sind, die Lösungen mit anderen zu teilen.[MOD: User verwarnt, Thread geschlossen]
-
Erlaubt es Dein Ego, uns die Lösung mitzuteilen?
Das hätte zum Einen Vorteile für Suchende, die über eine Suchmaschine ihres Vertrauens diesen Thread finden und ein ähnliches Problem haben und zum Anderen hat evtl. auch für Dich noch jemand einen Tipp, wie es vielleicht besser geht.Ob so oder so, Lösung posten macht immer Sinn und ist so eine Art FairPlay.
-
Ich weiß zwar nicht, wofür man das in der Form benötigt, aber Deinem fiddle entsprechend, würde ich den RadioGroups jeweils ein Attribut mitgeben, an dem Du erkennst, welche Gruppe geklickt wurde und das entsprechende DIV anzeigen.
Dazu müsstest Du allerdings die Logik etwas anpassen, da die Boxen und Gruppen bei Dir keine Eindeutigkeit haben. -
-
Ich schreibe heute Abend ein kleines Tutorial zum Thema XMLHttpRequest und -Response mit Bezug auf JSON als Datenaustauschformat und poste den Link dann hier.
-
Das Bild, das Du da als Hintergrund eingetragen hast, liegt physikalisch gar nicht mehr dort.
-
Zitat
Aso ok. Dann ist this.responseText also die ausgabe der php datei welche dann im div mit id log ausgegeben wird ?
Jap
ZitatWeitere Frage wenn ich weitere so input felder mit anderem namen haben, dann muss ich ja das xmlhttprequest entsprechend ändern für dies also anstatt : var rButtons = document.querySelectorAll( 'input[type='radio']' ); dass : var rButtons = document.querySelectorAll( 'input[name='radiobuttonnamen']' ); ?
Solange alles Radio-Types sind, brauchst Du das nicht anpassen. Es sei denn, Du möchtest für verschiedene Radios unterschiedliche Aktionen durchführen in der PHP. Da würde ich dann aber eher ein action-Schlüssel zusätzlich mit dem Request übermitteln.
PHP kann dann daran entscheiden, was er machen soll. JSON wird ab da dann imho immer diskutabler... -
Ich glaube, Du meinst das richtige.
- Der Klick auf einen Radio löst den Request mit POST-Daten an die PHP Datei aus
- PHP Datei verarbeite die Daten und führt ggf. die SQL-Anweisungen durch
- PHP-Datei mach Status-Ausgabe
- In der HTML-Datei wird die Ausgabe der PHP-Datei als Response empfangen und ebenfalls verarbeitet
-
Ja, den Grundstein dafür hast Du ja bereits.
- Klick auf RadioButton erzeugt XmlHttpRequest mit POST-Daten
- PHP-Datei empfängt POST Daten
- Dieser Part fehlt: PHP-Datei verarbeitet die empfangen POST-Daten und stößt den Schreibvorgang für die DB an.
- PHP-Datei macht Ausgabe je nach Status der Verarbeitung
- JavaScript empfängt den Response des Requests und werte diesen ggf. aus.
Vielleicht würde ich den Response noch als JSON liefern, aber das ist für den Ablauf erstmal irrelevant.
Es gibt definitiv keinen Grund, die PHP-Datei direkt aufzurufen!
-
Ich befürchte Du hast da was am Prinzip nicht ganz verstanden.
Oder ich verstehe Dich nicht, das wäre auch denkbar.Diese PHP-Datei:
wird in dem Moment ausgeführt, in dem sie aufgerufen wird.
Rufst Du sie bspw. so auf:existiert kein POST ( beachte: HTTP-Request-Bindung! ). Woher soll er also data kennen?!
Wenn Du in der HTML-Datei auf einen Radio-Button klickst, wird ein HTTP-Request erzeugt, der POST-Daten mitsendet, so dass die Datei diesen verarbeiten kann.
Vollkommen egal, wie oft Du die PHP-Datei selbst aufrufst, es wird immer ein neuer HTTP-Request erzeugt, in dem der POST nicht bekannt ist.Du sagst aber selber, dass er Dir in dem Container, die richtigen Ergebnisse anzeigt, wenn Du auf einen RadioButton klickst.
Scheinbar ist das aber für ich nicht das Ergebnis, das DU wolltest.Also müssetst Du nochmal detailliert beschreiben, was genau Du eigentlich möchtest.
Vielleicht gehst Du ja auch den falschen Weg und benötigst gar keine XMLHttpRequests?- - - Aktualisiert - - -
ZitatJa... Wie... Soll er raten, was Du ausgeben möchtest?!
-
Zitat
Auf der HTML seite wird es zwar ausgegeben aber auf der PHP seite wird nur fail ausgegeben.
Du willst mir aber jetzt nicht sagen, Du versuchst die PHP Datei direkt aufzurufen, oder?!
Ich hoffe, Dir ist klar, dass dann keine POST-Daten vorhanden sind und das Ergebnis nur allzu logisch ist... -
Der Code aus #4 ist 1:1 getestet und funktioniert, so wie er gepostet wurde.
Bei Deiner Meldung übergibst Du eine andere Schlüsselbezeichnung, als "data". Das liegt dann aber an Dir und nicht an den Scripten! -
Hier mal als Beispiel zum Üben, allerdings ohne jQuery:
HTML
Alles anzeigen<html> <head> <title>Radio Button auslesen OHNE Jquery bei click</title> <meta charset="utf-8"> <script src="radio.js"></script> </head> <body> <form name="form1"> <label>Käsesorten:</label> <label>Fein<input type="radio" name="kaesesorten" id="fein" value="fein"></label> <label>Würzig<input type="radio" name="kaesesorten" id="wuerzig" value="wuerzig"></label> <label>Kräuter<input type="radio" name="kaesesorten" id="kraeuter" value="kraeuter"></label> <label>Pilz<input type="radio" name="kaesesorten" id="pilz" value="pilz"></label> </form> <div id="log"></div> </body> </html>
Code
Alles anzeigenwindow.onload = function() { var rButtons = document.querySelectorAll( 'input[type='radio']' ); rButtons.forEach( function(e) { e.addEventListener( 'click', function() { var sPostValue = this.getAttribute('value'); var oR = new XMLHttpRequest(); oR.addEventListener( 'load', function() { document.getElementById('log').innerText = this.responseText; }); oR.open( 'POST', 'formdaten.php', true ); oR.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' ); oR.send( 'data=' + encodeURIComponent(sPostValue) ); }); }); };
Bei der Variante ist es übrigens egal, wie viele RadioButtons Du hast, das Click-Event wird auf jeden gelegt und verarbeitet.
Gruß Arne
-
Hi,
Ich kann an keiner Stelle Deines Codes erkennen, dass Du auf das Klick-Event reagierst?!
Deinen Ajax-Request führt er imho nur einmal nach dem vollständigen Laden der Seite aus.Ausserdem ist hier m.M.n. das Komma zu viel:
Ob JavaScript damit umgehen kann, bin ich mir nicht ganz sicher, würde Dir aber die Konsole Deines Browsers mitteilen.
-
Sei mir nicht böse, aber Du solltest als erstes dringend Satzzeichen und Groß-/Kleinschreibung lernen.
Diese SMS-Mentalität liest sich gelinde gesagt echt beschissen!Ok, da Dein eigentliches Problem gelöst scheint, bitte bei weiteren Problemen einen neuen Thread mit verständlicher Problembeschreibung öffnen, danke!
[MOD: geschlossen]