Formulardaten als Variable speichern
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
ausblenden
auswahl
betreiber
button
code
dank
datum
element
form
funktion
http
post
problem
sagen
senden
stadt
text
type
url
wut
-
Hi,
ich habe da ein Problem mit einem JS Dokument. Ich sende mit JS Daten an eine PHP Seite,
diese Speichert die Daten dann in der DB. Soweit funzt das alles. Die gesendeten Daten werden alle als
Variablen verarbeitet.
Nun möchte ich zusätzlich Daten aus einer Checkbox mit Speichern. Leider bekomme ich die Daten nicht gesendet.
Das ist der Request mit dem die Daten derzeit gesendet werden:
GM_xmlhttpRequest({ method: 'POST', url: tabelle, headers: { 'Content-type': 'application/x-www-form-urlencoded' }, data: encodeURI('kw_name='+nameoff+'&kw_wert='+kampfwert2+'&kw_att='+attoff+'&kw_def='+defoff+'&kw_gangid='+gidoff+'&kw_stadt='+stadt+'&wut='+wut+'&boost='+boost), onload: function(responseDetails) {document.cookie = 'name=KW01-Button;'; location.reload(); }})
Nun habe ich noch das folgende Formular mit Checkbox, das soll nun noch hinten an den
Request dran. Aber egal wie ich es anspreche, der Request streikt dann einfach.
<form name="kw_ausblenden">KW-ausblenden <input type=checkbox name="ausblenden" value="1" onClick="auswahl()"></form>
Ich bin über jede Hilfe dankbar.
Ein schönes WE euch LG Marco -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
ich komme aus dem Danke sagen an dich wohl heute nichtmehr raus :)
Hier mal der vollständige Sourcecode vom Script.
http://www.pennereck.de/kw_button/gm/Beta%200.02
Der Teil um den Es geht ist dieser
// *********************************************************************************************** // Ausgabe in der Modt // *********************************************************************************************** ausgabeform_mod.innerHTML += '<div align=center id="kw" style="width:143px;-moz-border-radius: 5px;border-radius: 5px;padding:2px;position:absolute;font-size:12px;color:#000;background-image:url('+bg_url+');background-repeat:no-repeat;z-index:500;right:'+right+';top:'+top+';">'+name+'<br>Stadt: '+stadt+'<br>Kampfwert: '+kampfwert2+''+'<br>Att: '+attoff+' | Def: '+defoff+''+'<br>Wut: '+wutstatus+'<br>Boost: '+booststatus+'<br><input target="_self" style="cursor: pointer;" name="button" type="button" id="kw_senden" value="KW übertragen"/>'+'<div align=center; style=font-size:9px;color:#000;><br><a style="cursor: help;" onClick="window.open(\'http://www.pennereck.de/board/index.php\')">Beta 0.02.6 <img src="http://www.pennereck.de/img/script/info-icon-kwbutton.png" alt="text" width="13" height="13";></a><br><br>'+'</div>'; // ----------------------------------------------------- +'</div>' // *********************************************************************************************** // Übermitteln der Daten // *********************************************************************************************** document.getElementById('kw').style.backgroundColor = ""; document.getElementById('kw_senden').addEventListener('click', function kampfwert_senden(){ GM_xmlhttpRequest({ method: 'POST', url: tabelle, headers: { 'Content-type': 'application/x-www-form-urlencoded' }, data: encodeURI('kw_name='+nameoff+'&kw_wert='+kampfwert2+'&kw_att='+attoff+'&kw_def='+defoff+'&kw_gangid='+gidoff+'&kw_stadt='+stadt+'&wut='+wut+'&boost='+boost), onload: function(responseDetails) {document.cookie = 'name=KW01-Button;'; location.reload(); }}) },false);
Alle Daten die derzeit gesendet werden, werden im Quellcode ausgelesen und als Variable gespeichert.
Nun sollte eine Checkbox dazu die der User ja manuell "befüllt" ,allerdings mag die nicht so wie ich will.
-
Also in dem Script seh ich nirgends etwas von deinem 2. Form.
Du musst natürlich auch die Checkbox bei data hinzufügen.
Außerdem bist du der Betreiber von pennereck.de bzw. Mr77Pink von userscripts.org?
Falls nicht solltest du vlt. besser ihn fragen.
Weiters scheint so ein Script den Regeln von pennergame zu widersprechen.
3.Verwendung von Hilfetools
(Quelle: http://www.pennergame.de/rules/)
3.1 Die Verwendung von Scripten und Programmen, die Aktionen (wie Flaschensammeln und den Verkauf der Flaschen) automatisieren oder die Spieloberfläche verändern bzw. das Spielgeschehen beeinflussen, ist verboten. -
Morgen und schönen Sonntag,
Also gleich als erstes, ja ich bin der Betreiber von Pennereck und auch Mr77Pink bei Userscripts.
Das mit dem Erlaubt oder nicht bei PG ist so eine Sache. Die Betreiber von Pennergame haben vor kurzem
einfach alle Scripte als "gefährlich" eingestuft und es liegt beim User welche er nutzt.
Die Regeln gelten natürlich weiterhin die Du da Kopiert hast.
Allerdings verändere ich weder das Aussehen des SPiels noch
beeinflusse ich den Spielablauf. Bisher kam da keine negative Rückmeldung von
Pennergame und das Script wirde auch schon dort im Forum besprochen.
Spätestens dort wären die Betreiber eingeschritten.
So zum Thema,
Sorry ich hatte gestern noch rum Probiert, da sich mit der Form nichts senden lies habe ich es
wieder entfernt.
Hier ist jetzt die Form mit drin.
http://www.pennereck.de/kw_button/gm/Beta%200.02.js
Hier mal die beiden stellen wo die Form nun drin ist.
ausgabeform_mod.innerHTML += '<div align=center id="kw" style="width:154px;-moz-border-radius: 5px;border-radius: 5px;padding:2px;position:absolute;font-size:12px;color:#000;background-image:url('+bg_url+');background-repeat:no-repeat;z-index:500;right:'+right+';top:'+top+';">'+name+'<br>Stadt: '+stadt+'<br>Kampfwert: '+kampfwert2+''+'<br>Att: '+attoff+' | Def: '+defoff+''+'<br>Wut: '+wutstatus+'<br>Boost: '+booststatus+'<br><form name="kw_ausblenden">KW-ausblenden <input type=checkbox name="ausblenden" value="1" onClick="auswahl()"></form><br><input target="_self" style="cursor: pointer;" name="button" type="button" id="kw_senden" value="KW übertragen"/>'+'<div align=left; style=font-size:9px;color:#000;><a style="cursor: help;" onClick="window.open(\'http://www.pennereck.de/board/index.php\')">Version 1.0</a> <a style="cursor: pointer;" onClick="window.open(\'http://www.pennereck.de/u_seiten/impressum.php\')">© 2012 4D-ESIGN<br>'+'</div>';
GM_xmlhttpRequest({ method: 'POST', url: tabelle, headers: { 'Content-type': 'application/x-www-form-urlencoded' }, data: encodeURI('kw_name='+nameoff+'&kw_wert='+kampfwert2+'&kw_att='+attoff+'&kw_def='+defoff+'&kw_gangid='+gidoff+'&kw_stadt='+stadt+'&wut='+wut+'&boost='+boost+'&vali='+ausblenden), onload: function(responseDetails) {document.cookie = 'name=KW01-Button;'; location.reload();
Gibt es denn die Möglichkeit auf das <form> zu verzichten und einfach nur über <input> die Checkbox zu erzeugen?
So habe ich es mit dem Button zum senden auch gemacht. allerdings ging es da auch ohne Probleme.
Einen schönen und sonnigen SOnntag wünsche ich.
Und nochmals Danke das Du Dir die Zeit nimmst mir zu helfen.
Gruß Marco -
Mich würde da z.B. der Quelltext der Seite im eingeloggten Zustand interessieren.
Wohlmöglich haben Form, und/oder Checkbox einen Token-Code, welcher sich jedesmal ändert?
Sollte der dann beim absenden fehlen, wird die Eingabe auch nicht akzeptiert. -
Hi,
also nen Token-Code oder ähnliches ist dort nicht drin.
Das Absenden geht ja auch wunderbar. Erst wenn ich den Data-Request
um die Checkbox erweiter streikt alles
So läuft alles Wunderbar wenn die Checkbox fehlt beim Request:
data: encodeURI('kw_name='+nameoff+'&kw_wert='+kampfwert2+'&kw_att='+attoff+'&kw_def='+defoff+'&kw_gangid='+gidoff+'&kw_stadt='+stadt+'&wut='+wut+'&boost='+boost),
Füge ich die Checkbox hinten mit ein kann nichts gesendet werden
data: encodeURI('kw_name='+nameoff+'&kw_wert='+kampfwert2+'&kw_att='+attoff+'&kw_def='+defoff+'&kw_gangid='+gidoff+'&kw_stadt='+stadt+'&wut='+wut+'&boost='+boost+'&vali='+ausblenden),
LG Marco
Tante Edit:
Der Sourcecode beim AUfrufen des Script´s auf Pennergame:
<div id="kw" style="width: 154px; border-radius: 5px 5px 5px 5px; padding: 2px; position: absolute; font-size: 12px; color: rgb(0, 0, 0); background-image: url("http://www.pennereck.de/kw_button/bg_button_berlin.png"); background-repeat: no-repeat; z-index: 500; right: 400px; top: -158px;" align="center">Hanshatkeinglueck<br>Stadt: Hamburg<br>Kampfwert:& nbsp;770.4<br>Att: 274 | Def: 469<br>Wut: <img src="http://www.pennereck.de/kw_button/nein.png" class="image" alt="Eure Bande hat keine Wutentfachung aktiviert!" height="12" width="12"><br>Boost: <img src="http://www.pennereck.de/kw_button/nein.png" class="image" alt="" height="12" width="12"><br><form name="kw_ausblenden">KW-ausblenden <input name="ausblenden" value="*****" onclick="auswahl()" type="checkbox"> </form><br><input target="_self" style="cursor: pointer;" name="button" id="kw_senden" value="KW übertragen" type="button"><div style="font-size:9px;color:#000;" align="left;"><a style="cursor: help;" onclick="window.open('http://www.pennereck.de/board /index.php')">Version 1.0</a> <a style="cursor: pointer;" onclick="window.open('http://www.pennereck.de/u_seiten /impressum.php')">© 2012 4D-ESIGN<br></a></div></div>
Beitrag zuletzt geändert: 19.8.2012 11:26:15 von aff3m1tw4ff3 -
aff3m1tw4ff3 schrieb:
Zuerst fällt mir zu Schluss nen Komma auf - kommt danach noch mehr? Sonst wech damit, bzw durch ";" ersetzen.
Füge ich die Checkbox hinten mit ein kann nichts gesendet werden
... &wut='+wut+'&boost='+boost+'&vali='+ausblenden),
Dann heißt es "&vali='+ausblenden" - wie kommst Du auf "vali"?
Müsste es nicht "&ausblenden=(inhalt der unten aufgeführten value)" oder ähnlich heißen?
aff3m1tw4ff3 schrieb:
Was bewirkt die Funktion "auswahl()"?
Der Sourcecode beim AUfrufen des Script´s auf Pennergame:
<input name="ausblenden" value="*****" onclick="auswahl()" type="checkbox">
Schließlich wird die ja ausgeführt.
;)
Beitrag zuletzt geändert: 19.8.2012 11:59:46 von menschle -
Also zum Komma, ja es geht danach weiter.
Bei Vali,
... &wut='+wut+'&boost='+boost+'&vali='+ausblenden),
Vali ist die Spalte in der DB und ausblenden der Name der Checkbox.
<input name="ausblenden" value="*****" onclick="auswahl()" type="checkbox">
Die Checkbox wird angezeigt und man kann Sie auswählen, wenn ich dann die Daten Senden möchte
reagiert aber der Button nichtmehr.
So sieht der Butoon mit Checkbox aus:
http://prntscr.com/e1kd4
Beitrag zuletzt geändert: 19.8.2012 12:25:46 von aff3m1tw4ff3 -
aff3m1tw4ff3 schrieb:
^^ So kommen wir ja nicht weiter.
Die Checkbox wird angezeigt und man kann Sie auswählen, wenn ich dann die Daten Senden möchte
reagiert aber der Button nichtmehr.
So sieht der Butoon mit Checkbox aus:
http://prntscr.com/e1kd4
Erstens ist wohl der Inhalt der "value" der Checkbox nicht unbedeutend.
Zweitens..
menschle schrieb:
.. würde Dich der Quelltext der Funktion "auswahl()" Deiner Lösung wohl eher ein Schrittchen näher bringen, als mich ein Screenshot einer Checkbox.
<input name="ausblenden" value=" ***** " onclick="auswahl()" type="checkbox">
Was bewirkt die Funktion "auswahl()"?
Schließlich wird die ja ausgeführt.
;)
-
Mhh, also nu stehe ich auf dem Schlauch. Wonach genau soll ich im Quelltext suchen?
Die Checkbox wird ja im Quelltext angezeigt
<input name="kw_ausblenden" value="1" onclick="auswahl()" type="checkbox">
Aber mehr kann ich dort ja nicht sehen.
Solange ich im Request die Checkbox nicht versuche mit zu senden geht alles, auch wenn das input feld angezeigt wird.
Sobald ich dann in den Request das value aus der Checkbox anhänge geht nixmehr.
&vali='+kw_ausblenden
da hängt es sich dann auf.
Sorry ich bin echt Ratlos, wo ich mit der Fehlersuche ansetzen soll. -
aff3m1tw4ff3 schrieb:
Nach allen
Wonach genau soll ich im Quelltext suchen?
suchen. Die dann alle mal anschauen, und nach der Funktion auswahl() schauen ;)<script language="JavaScript" src="egal/irgendwas.js" />
-
Im Quelltext ist von der Funktion nichts zu finden.
Die Funktion ist aber drin und sieht so aus.
function auswahl() { var i,Text=""; /* jede Checkbox abchecken und wenn ausgewaehlt auflisten : */ for (i=0;i<1;i++) if (document.kw_ausblenden.elements[i].checked) Text=Text+document.kw_ausblenden.elements[i].value+"\n"; /* Text im Ausgabefeld setzen : */ document.kw_ausblenden.anzeige.value=Text; }
Stellt sich also die Frage warum die Funktion nicht auftaucht wenn ich das richtig verstehe.
-
aff3m1tw4ff3 schrieb:
^^ Naja, Du hast sie doch gefunden :D also muss sie ja da sein ;)
Stellt sich also die Frage warum die Funktion nicht auftaucht wenn ich das richtig verstehe.
K, die Funktion macht nüx besonderes, außer bei Dir im Browser die ausgewählten Optionen aufzulisten - sonst nichts.
(Machmal kommt es halt vor, dass so ne Funktion noch was bewirkt.)
Die Form selbst hat den Namen kw_ausblenden und die Checkbox ausblenden.
Versuche mal als Anhängsel
&kw_ausblenden.ausblenden.value=true
oder
&document.kw_ausblenden.ausblenden.value=true
Musst Dich mal durchwurschteln, vll klappts ja.
;)
€dit:
könnte auch
&kw_ausblenden.ausblenden.checked=true
oder
&document.kw_ausblenden.ausblenden.checked=true
heißen.
Beitrag zuletzt geändert: 19.8.2012 13:46:10 von menschle -
aff3m1tw4ff3 schrieb:
...
Die Regeln gelten natürlich weiterhin die Du da Kopiert hast.
Allerdings verändere ich weder das Aussehen des SPiels noch
beeinflusse ich den Spielablauf. ...
Schon gut, mir ists ja eigentlich egal. Wollte dich nur darauf hinweisen. ;)
Also was mir als erstes auffällt ist dass du in deinem UserJS die Funktion auswahl() zwei mal definiert hast.
Rest muss ich erst mal schauen, aber menschle hilft dir ja schon sehr gut. :)
Edit: ...
Bei deinem HTML in http://www.lima-city.de/board/action:jump/1077921 hast du ja auch Fehler.
Wieso ist der "KW übertragen"-Button nicht innerhalb vom form?
Wird den eigentlich der Text den den mit auswahl() generierst angezeigt?
Beitrag zuletzt geändert: 19.8.2012 15:02:31 von philippkern -
Also gleich als erstes mal wieder Danke für eure Hilfe, echt der Hammer!!
Ich hab mich jetzt nochmal dran gesetzt. Ich bin nun soweit das der Request zumindest mal die Daten wieder abschickt.
Allerdings werden die Daten aus der Checkbox nicht gesendet.
Den Button zum senden habe ich nun mit in die <form> getan, er war dort nicht mit drin da ich vorher ohne <form> gearbeitet habe.
Das kam jetzt erst mit der Checkbox.
<form name="kw_ausblenden"><input type="checkbox" name="kw_ausblenden" value="1"> <br><input target="_self" style="cursor: pointer;" name="button" type="button" id="kw_senden" value="KW übertragen"/> </form>
Beim Request habe ich auch alles durch Probiert, am Ende lief es mit
data: encodeURI('kw_name='+nameoff+'&kw_wert='+kampfwert2+'&kw_att='+attoff+'&kw_def='+defoff+'&kw_gangid='+gidoff+'&kw_stadt='+stadt+'&wut='+wut+'&boost='+boost+'&document.kw_ausblenden.kw_ausblenden.checked=true'),
Bei der Funktion sind die Namen jetzt auch passend und es ist nur eine enthalten.
Da habe ich gestern beim rumprobieren etwas geschludert. Allerdings kann ich im Quelltext der Seite
die function auswahl() dann nicht finden.
function auswahl() { var i,Text=""; /* jede Checkbox abchecken und wenn ausgewaehlt auflisten : */ for (i=0;i<4;i++) if (document.kw_ausblenden.elements[i].checked) Text=Text+document.kw_ausblenden.elements[i].value+"\n"; /* Text im Ausgabefeld setzen : */ document.kw_ausblenden.anzeige.value=Text; }
So werden jetzt zumindest die anderen Daten wieder gesendet, aber die CHeckbox leider nicht. Ich hab jetzt mal die Namen alle gleich gemacht das ich mich da nicht vertue.
Wenn ich das richtig verstehe sollte ja nun das Value übermittelt werden und laut
&document.kw_ausblenden.kw_ausblenden.checked=true den Namen kw_ausblenden haben.
Beim Insert zur DB versuche ich das mit
vali = '$_POST[kw_ausblenden]'
zu speichern.
Vieleicht habt Ihr ja noch eine Idee dazu.
-
aff3m1tw4ff3 schrieb:
Nö.
Wenn ich das richtig verstehe sollte ja nun das Value übermittelt werden und laut
&document.kw_ausblenden.kw_ausblenden.checked=true den Namen kw_ausblenden haben.
Du verwendest den Namen der Form 2 mal, damit kann das Script nix anfangen.
Vergleiche:
&document.kw_ausblenden.kw_ausblenden.checked=true
&document.kw_ausblenden.ausblenden.checked=true
;)
-
Ok dann habe ich das zumindest mal verstanden. ALlerdings geht es trotzdem nicht.
Ich werde Morgen / nachher mal schauen, das ich aus allen daten, die ich senden
will, eine saubere <form> hinbekomme. Irgendwie muss das ja gehen.
Danke wie immer und eine Gute Nacht!! -
Also.
aff3m1tw4ff3 schrieb:
function auswahl() { var i,Text=""; /* jede Checkbox abchecken und wenn ausgewaehlt auflisten : */ for (i=0;i<4;i++) if (document.kw_ausblenden.elements[i].checked) Text=Text+document.kw_ausblenden.elements[i].value+"\n"; /* Text im Ausgabefeld setzen : */ document.kw_ausblenden.anzeige.value=Text; }
Du hast da ein
.document.kw_ausblenden.anzeige.value=Text;
Ich frag dich jetzt nochmal, wird das auch ausgeführt? Und wenn ja was steht dann in deinem anzeige-Element das ich nirgendwo sehen kann?
Beim Insert zur DB versuche ich das mit
vali = '$_POST[kw_ausblenden]'
zu speichern.
Ich hoffe ja das du es nicht so im PHP-Code stehen hast ...
Bitte nie Request-Variablen (_GET, _POST, ...) einfach in einen Datenbank-Query einbauen!!
http://php.net/manual/de/security.database.sql-injection.php
menschle schrieb:
Du verwendest den Namen der Form 2 mal, damit kann das Script nix anfangen.
Das passt schon so. Er hat ein form das kw_ausblenden heißt und die Checkbox heißt auch so ... -
philippkern schrieb:
Also.
Du hast da ein
.document.kw_ausblenden.anzeige.value=Text;
Ich frag dich jetzt nochmal, wird das auch ausgeführt? Und wenn ja was steht dann in deinem anzeige-Element das ich nirgendwo sehen kann?
Nein die Anzeige reagiert ebenfalls nicht. Ich habe Sie drin gelassen um zu sehen ob
die Checkbox irgendwann mal reagiert.
philippkern schrieb:
Ich hoffe ja das du es nicht so im PHP-Code stehen hast ...
Du hast meine nächste Baustelle gefunden. Ich hab mich mit dem Thema schon
befasst und werde die DB Abfrage/EIngaben als nächstes absichern.
Da werde ich mit Sicherheit bei euch nochmal fragen kommen :)
Nun erst mal ne Kanne Kaffee und dann mal die <form> gequält bis Sie
alle Daten sendet.
Schönen Wochenstart euch
Gruß Marco
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage