Mw E. schrieb:> Kann passieren und wo ist jetzt die Frage?
ich kann ja hiermit nur den string auswerten "rgbw"
index = FindCGIParameter ( "rgbw", pcParam, iNumParams );
ich möchte gerne wenn ich etwas aus der Drobbox auswähle zb.MAGENTA50
das auch auswerten.
könnte mir jemand dazu weiterhelfen
> Willste uns wieder so trollen wie bei deinem letzten Thread?
nein
OMG, das HTML file ist Haarstraubend. tw, w1, w2, etc. sind keine
gültigen HTML Tags. Nimm besser Divs und gib denen eine Identische
klasse. Nummerieren kann man sie auch noch mit dem data-* userdefined
attributen. Die Attribut Werte sollten immer in "" stehen.
Verschachtelte forms sind nicht möglich, ein Browser sollte™ das
vorherige form dann Schliessen, kann man in den Entwicklertools des
Browsers nachprüfen. getElementById kann nicht auf auf ein name
attribut angewendet werden, sondern nur auf eindeutige id attribute. Das
class attribut bei den option tags macht keinen sinn, sollte dort
das value attribut sein?
Wenn ich die Funktionssignatur von FindCGIParameter richtig
interpretier, liefert es den Index an welchem im array pcParam der
String "rgbw" gefunden wird. Der wert davon sollte dann im
Korrespondierenden Feld von pcValue sein, also bei pcValue[index],
sofern index nicht -1 ist.
PS: Nach https://www.mikrocontroller.net/articles/Netiquette sollte man
"Push" Beiträge vermeiden.
Hier lesen wie man ordentlich HTML entwirft:
http://www.w3schools.com/html/
Ansonsten weis hier keiner wasse überhaupt willst.
Also beschreib doch mal in in jeweils 10 Sätzen folgendes:
1) was willste denn im großen und ganzen machen
2) was soll der HTML Code machen und wie verträgt sich das mit Punkt 1
3) was wird übers Netzwerk übertragen bei den Aktionen der Webseite
(siehe Wireshark)
4) wie kommt Punkt 3 bei dem Codeschnipsel an
Dir ist also klar, was
> FindCGIParameter ( "rgbw", pcParam, iNumParams );
tut. Und Dir ist nicht klar, wie man einen anderen Parameter ausliest?
Das verstehe ich nun nicht. Ich meine, offensichtlicher geht es doch gar
nicht!
Versuch mal:
> FindCGIParameter ( "was_anderes", pcParam, iNumParams );
Allerdings solltest du nach wie vor erst mal HTML lernen.
Stefan U. schrieb:> Und Dir ist nicht klar, wie man einen anderen Parameter ausliest?> Das verstehe ich nun nicht. Ich meine, offensichtlicher geht es doch gar> nicht!>> Versuch mal:>>> FindCGIParameter ( "was_anderes", pcParam, iNumParams );
So wie es aussieht will er gar keinen anderen Parameter auslesen,
sondern den Wert des Parameters "rgbw".
Siehe: Daniel A. schrieb:> Wenn ich die Funktionssignatur von FindCGIParameter richtig> interpretier, liefert es den Index an welchem im array pcParam der> String "rgbw" gefunden wird. Der wert davon sollte dann im> Korrespondierenden Feld von pcValue sein, also bei pcValue[index],> sofern index nicht -1 ist.
Conny, was meinst du mit "auswerten"?
Zuerst solltest du mal versuchen, den String (Wert des Parameters)
einfach auszulesen. Vielleicht so:
1
index = FindCGIParameter ( "rgbw", pcParam, iNumParams );
2
if(index != -1)
3
{
4
puts(pcvalue[index]); // Ausgabe auf die Konsole
5
}
Hast du überhaupt eine serielle Konsole zum Debuggen? Oder einen
Hardware Debugger, mit dem Du ins RAM (Variable "pcvalue") schauen
kannst?
Danach kannst du ihn wie auch immer auswerten.
Guten Tag,
Wie man den Parameter Auswertet weis ich.
Hatte mich vielleicht missverständlich ausgedrückt.
Was ich meinte ist, wie kann ich in dem HTML Funktionsaufruf Wohn_1();
eine Variable mitgeben.
conny schrieb:> Was ich meinte ist, wie kann ich in dem HTML Funktionsaufruf Wohn_1();> eine Variable mitgeben.
Na einfach einen Parameter spezifizieren:
1
functionexample(a,bla123){// Funktion example mit Parametern a und bla123
2
alert(a);
3
alert(bla123);
4
}
5
example(123,"test");// Aufruf von example mit Argumenten number 123 für a und string "test" für bla123
Bei POST requests könnte man mit FormData arbeiten, aber bei GET muss
man den Query String selbst kodieren. Folgende Funktion nimmt einem die
Arbeit ab:
erstmal vielen dank das Funktioniert.
Jetzt hab ich noch eine Frage, wenn ich einzelne Tasten habe und wollte
gerne Die einzelnen Tasten mit einem Wert versehen.
Doch leider Funktioniert das so nicht.
Ich sehe da jetzt so spontan nur eine fehlendes '}' zum abschliessen der
Funktion Wohn_1a, aber das könnte auch ein copy&paste Fehler sein. Wenn
du die Konsole deines Browsers öffnest, gibt es dort eine Fehlermeldung?
Und im Tab mit den Requests, gibt es dort einen neuen wenn du einen
Knopf drückst?
Daniel A. schrieb:> Ich sehe da jetzt so spontan nur eine fehlendes '}' zum> abschliessen der> Funktion Wohn_1a, aber das könnte auch ein copy&paste Fehler sein. Wenn> du die Konsole deines Browsers öffnest, gibt es dort eine Fehlermeldung?> Und im Tab mit den Requests, gibt es dort einen neuen wenn du einen> Knopf drückst?
Die fehlende Klammer wars.
Funktioniert einwandfrei.
Vielen Dank erstmal
mfg
Hallo,
Ich hab nochmal ne Frage bezüglich der onLoad Funktion.
Ich wollte nun gerne wenn die Seite aufgerufen wird, sollte zerst der
Status der Lampen abgefragt werden.
Es wird nur die zweite abfrage richtig angezeigt.
könnte mir jemand weiterhelfen
Mach mal die Javascript Konsole an, dann siehst du möglicherweise eine
hilfreiche Fehlermeldung.
Du könntest auch alert("...") Meldungen einbauen, um zu sehen, ob die
erste Abfrage überhaupt richtig ausgeführt wird.
Das Script führt beide Abfragen parallel aus. Ist loadXMLDoc() dafür
geeignet, erneut aufgerufen zu werden, bevor die vorherige Abfrage
beendet ist?
Stefan U. schrieb:> Mach mal die Javascript Konsole an, dann siehst du möglicherweise> eine> hilfreiche Fehlermeldung.>> Du könntest auch alert("...") Meldungen einbauen, um zu sehen, ob die> erste Abfrage überhaupt richtig ausgeführt wird.>
Hab ich gemacht, beide Funktionen werden aufgerufen, die alert
Textmeldung wird mir von beiden Funktionen angezeigt.
> Das Script führt beide Abfragen parallel aus. Ist loadXMLDoc() dafür> geeignet, erneut aufgerufen zu werden, bevor die vorherige Abfrage> beendet ist?
Ich glaube mann muss Sicherstellen das die eine Abfrage Beendet ist
bevor mann eine neue stellt,nur weiss ich nicht wie das gemacht wird
Das Problem ist das Globale xmlhttp Objekt. Wenn die 1te anonyme
Callbackfunktion zurückkehrt ist das globale xmlhttp Objekt, auf welches
sie Zugreift das, welches beim zweiten Aufruf von loadXMLDoc erzeugt
wurde. Typische Racecondition/Anfängerfehler. Es gibt mehrere
Lösungsmöglichkeiten, z.B. das XMLHttpRequest Objekt der Funktion als
Parameter mitzugeben, optional auch als this, oder etwas besser zu
Abstrahieren. Ich schreibe die Ladefunktionen sowieso jedes mal neu,
Versuchs mal so:
1
// Meine letzte Implementierung davon, aufgabe entspricht deinem loadXMLDoc
Solange man keinen <=IE8 Browser hat sollte das funktionieren.
PS: Ich Binde mir die Scripts immer mit dem script tag als separate
Datei ein, und setze das defer attribut. Dadurch kann ich mir das onload
sparen, wird aber viel zu selten gemacht.
Jch nutze fast immer MDN, die haben die besten API Referenzen. Für
XMLHttpRequest und HTML5 Anwendungsbeispiele schaue ich jedoch
gelegentlich bei www.html5rocks.com vorbei, z.B.
http://www.html5rocks.com/de/tutorials/file/xhr2/
Jetzt hab ich nochmal eine Frage bezüglich der Auswertung eines
Formulars,
so wie ich es jetzt habe wird die Seite ja immer neu geladen wenn ich
auf den sende Button drücke.
Ich wollte gerne das nur der Inhalt auf der seite angezeigt wird
Könnten sie mir da weiterhelfen.
Das Problem ist an der Stelle /form.rgbw.value/ , den in der Form gibt
es kein Input mit name rgbw von dem man die Eigenschaft value
auslesen könnte. Da /form.rgbw/ undefined ist wird beim versuch auf
die Eigenschaft value von undefined zuzugreifen ein Fehler geworfen,
der die Funktion abbricht und nirgens abgefangen wird. Dadurch wird
event.preventDefault() nie ausgeführt, und das Absenden des Formulars
durch den Browser nicht verhindert. Am besten schreibt man da schnell
eine Funktion die alle Werte aller Felder abfragt. Dies ist nur
notwendig, weil hier ein get request benötigt wird, bei einem post
request könnte man bei xmlhttp.send ein FormData objekt übergeben, das
aus der Form erstellt wurde. (mittels new FormData(form)). Da im Moment
die Funktion FormData.entries() noch nicht bei besonders vielen Browsern
implementiert ist, kann diese in vielen Browsern noch nicht verwendet
werden um über die Werte im FormData Objekt zu iterieren. Deshalb ist es
momentan noch notwendig die Werte manuell auszulesen. Ich habe die Datei
mal etwas angepasst, ich hoffe ich habe mich nirgends vertippt ;)
Edit: document.getElementById("switches").src müsste
document.getElementById("switches").value sein, kann ich jetzt aber
nichtmehr ändern...
ihr Beispiel funktioniert tadellos,
wenn ich jetzt mehrere eingabefelder habe zb. Vorname und Nachname und
nur ein Button zum senden habe.
Hab das nochmal umgeändert geht aber nicht
Bei der Funktion test ist this ein reserved word und kann nicht als
Parameter verwendet werden. Ersetze es durch irgend was anderes, z.B.
form. Ausserdem, warum willst du 2 unterschiedliche requests
durchführen? Kombiniere diese doch einfach und gib beide Resultate in
der Response zurück.
Daniel A. schrieb:> Bei der Funktion test ist this ein reserved word und kann nicht> als> Parameter verwendet werden. Ersetze es durch irgend was anderes, z.B.> form.
Hab ich gemacht geht nicht.
> Ausserdem, warum willst du 2 unterschiedliche requests
naja ich hab ja auch 2 unterschiedliche Eingabefelder Vorname Nachname
> durchführen? Kombiniere diese doch einfach und gib beide Resultate in> der Response zurück.
Hab ich ja so gemacht, nur wenn ich auf senden drücke erhalte ich ein
seitenlade Fehler
Im Anhang nochmal die geänderte Version.
Leider Fuznktioniert das nicht richtig.
Als Ausgabe im Browser erhalte ich im Feld Nachname die Werte für
Vorname und Nachname.
Wie kann ich das nun trennen damit das richtig angezeigt wird.
mfg
Ich habe ganz stark das Gefühl, dass du dich bei diesem Projekt
übernommen hast. Du hast die Grundlagen des Konstruktes nicht verstanden
und tust dich daher sehr schwer, es zu verändern.
Kannst du das Projekt nicht abbrechen oder an jemand anderen übergeben?
Mach doch lieber etwas, was du selbst verstehst. Dann lernst du auch
wahrscheinlich viel mehr dabei.
mastah schrieb:> Was du hier willst ist keine "Hilfe", sondern andere sollen dein> Projekt> machen.> Solch lernresistente Leute wie dich sieht man echt selten!
Ich hab höflich gefragt .
Ich suche niemand der mein Projekt macht!!!!!
Ich fragte wie mann das macht.
conny schrieb:> Ich suche niemand der mein Projekt macht!!!!!>> Ich fragte wie mann das macht.
Nunja, es sind halt schon sehr einfache Dinge. Beim Entwickeln geht es
eigentlich nur darum, passende Lösungen für ein Problem zu finden. Es
gibt hier auch nicht nur einen Weg, wie man das macht, sondern viele
Möglichkeiten, wie man das könnte. Wenn du scharf nachdenkst, wirst du
schon eine Lösung finden.
> Ich fragte wie mann das macht.
Indem Du C lernst und anwendest. Bücher und Tutorials zu C wurden Dir in
diversen Threads reichlich empfohlen.
Und jetzt lerne C und komme danach auf dieses Projekt zurück.
> Ich hab höflich gefragt.
Ja, das hast du. Aber durch deine hartnäckigen wiederholten Fragen bei
zugleich nicht sichtbarem Fortschritt muss man sich schon fragen, ob Du
das absichtlich machst, um uns zu ärgern.
Denn wenn du uns nicht verärgern willst, warum fängst du dann nicht an
zu lernen - und zwar ohne dieses zum Lernen definitiv ungeeignete
Projekt?
Wer Ratschläge annimmt, erfreut den Helfer und bekommt weitere Hilfe.
Daniel A. schrieb:> conny schrieb:>> Ich suche niemand der mein Projekt macht!!!!!>>>> Ich fragte wie mann das macht.>> Nunja, es sind halt schon sehr einfache Dinge. Beim Entwickeln geht es> eigentlich nur darum, passende Lösungen für ein Problem zu finden. Es> gibt hier auch nicht nur einen Weg, wie man das macht, sondern viele> Möglichkeiten, wie man das könnte. Wenn du scharf nachdenkst, wirst du> schon eine Lösung finden.
Im Anhang nochmal ein Versuch
Das stimmt das es viele Lösungen gibt, für Profis ist das natürlich
ruckzug erledigt.
Der Rückgabewert wird ja korrekt zurück gegeben, Nur wié wird dieser
richtig aufgesplittet, hab den ganzen Tag im Netz gesucht vielleicht
auch nicht richgtig da ich die Schlüsselwörter nicht weiss.
Vielleicht könnten sie Daniel A. noch ein wenig weiterhelfen.
mfg
ist es denn Möglich mir zu helfen, wie der Response string richtig
aufgeteilt wird.
Als Response bekomme ich 12 das ist richtig.
Es sollte aber unter Vorname = 1 und Nachname = 2 stehen.
kann mir jemand weiterhelfen.
mfg
conny schrieb:> kann mir jemand weiterhelfen.
Nö kann ich nicht, das wäre vergebene Mühe!
Ratschläge nimmste ja nicht an und lässt dir nur Code vorgeben.
Beim kleinsten Anpassen des Codes stößte wieder auf Probleme und nervst
hier im Forum rum.
Anstatt mal ordentlich C zu lernen, HTML/CSS zu lernen und wie denn nun
Browser Formulare abschicken.
Sowie was GET/POST Requests sind und wie diese Requests von einem
Webserver behandelt werden. Im besonderen von dem genutzten embeddet
Webserver.
Etwas Javascript kann auch nicht schaden, ist vom Syntax her schonmal
recht C artig.
Aber all das kommt ja nicht von dir.
Die Ratschläge der Anderen, erstmal klein anzufangen, nimmste ja auch
nicht an.
Irgendwann reichts eben mal.
Nur so am Rande: Ich bin schon länger tätig im embeddet Bereich und auch
was embeddet Webserver angeht. Aber durch deine widerliche Art werde ich
dir nicht weiter helfen. Also eine Wissensquelle ist schonmal für dich
verschlossen durch dein Auftreten allein.
edit:
Könnte ein Mod mal hier zumachen mit das Trollen durch conny ein Ende
hat?
Daniel A. schrieb:>> Nunja, es sind halt schon sehr einfache Dinge. Beim Entwickeln geht es> eigentlich nur darum, passende Lösungen für ein Problem zu finden. Es> gibt hier auch nicht nur einen Weg, wie man das macht, sondern viele> Möglichkeiten, wie man das könnte. Wenn du scharf nachdenkst, wirst du> schon eine Lösung finden.
Das ist Richtig ja, sie sind ja auch vom Fach.
Im Netz hab ich nach einem Beispiel gesucht wie ich den string richtig
aufteilen in Vorname und Nachname aber nichts gefunden.
Das CGI auf meinem Webserver funktioniert ja richtig gibt mir ja auch
den string zurück.
Allerdings ist das eigentlich alles Murks. Ich verwende für sowas immer
JSON (1), kann man in js ganz einfach mit JSON.parse() parsen und
funktioniert zuverlässig:
1
>JSON.parse('{"vorname":123,"nachname":456}');
2
Object{vorname:123,nachname:456}
1) http://json.org/
Das alles ist doch nun wirklich nicht schwer zu finden.
PS: Herausfinden wie man das nun Anwendet wirst du ja nun aber
wenigstens noch schaffen, oder?
> Herausfinden wie man das nun Anwendet wirst du ja nun> aber wenigstens noch schaffen, oder?
Kannst du nicht ein eispiel zeigen, wie man das macht :-)
SCNR
Sorry, aber es ist diesmal schon etwas mehr nötig als simples Copy &
Paste. Öffne doch aml die Browser Console und probiere aus, was
überhaupt was bewirkt. Das ganze hat wenig Sinn, wenn du nicht
verstehst, was du da eigentlich tust.
Daniel A. schrieb:> Sorry, aber es ist diesmal schon etwas mehr nötig als simples Copy> &> Paste.
Das ist mir schon klar.
Ich hab die letzten 2 Tage im Netz gesucht wie das gemacht wird, aber
alles was ich gelesen hab sind immer nur Teile davon gewesen.
Ich wollte ja nur das die 1 in Vorname erscheint und die 2 in Nachname.
Öffne doch aml die Browser Console und probiere aus, was
> überhaupt was bewirkt. Das ganze hat wenig Sinn, wenn du nicht> verstehst, was du da eigentlich tust.
Ich habe zurzeit nur den edge Browser von Windows10.
Wie oft denn noch?
Erst Grundlagen dann Detailwissen.
Im Moment weiste nichtmal wonach du suchst und wenn das blinde Huhn dann
doch mal nen Korn gefiunden hat weies es nicht wie man das Anwendet.
Snsonsten zitier ich mich mal selbst, bisher kam ja keine Antwort:
Mw E. schrieb:> Ansonsten weis hier keiner wasse überhaupt willst.> Also beschreib doch mal in in jeweils 10 Sätzen folgendes:> 1) was willste denn im großen und ganzen machen> 2) was soll der HTML Code machen und wie verträgt sich das mit Punkt 1> 3) was wird übers Netzwerk übertragen bei den Aktionen der Webseite> (siehe Wireshark)> 4) wie kommt Punkt 3 bei dem Codeschnipsel an
Mw E. schrieb:> Snsonsten zitier ich mich mal selbst, bisher kam ja keine Antwort:>> Mw E. schrieb:>> Ansonsten weis hier keiner wasse überhaupt willst.>> Also beschreib doch mal in in jeweils 10 Sätzen folgendes:>> 1) was willste denn im großen und ganzen machen>> 2) was soll der HTML Code machen und wie verträgt sich das mit Punkt 1>> 3) was wird übers Netzwerk übertragen bei den Aktionen der Webseite>> (siehe Wireshark)>> 4) wie kommt Punkt 3 bei dem Codeschnipsel an
Ich hab ein Formular mit einem Vorname und einem Feld Nachname.
Auf dem Webserver ist ein cgi script das gibt mir dann für den Vorname 1
und für den Nachname 2 zurück.
Aber im Browser erhalte ich beim Feld Nachname 12.
Ich wollte das gerne im Feld Vorname 1 und im Feld Nachname 2 erscheint.
Wiegesagt auf dem Webserver ist ein cgi script das gibt mir dann für den
Vorname 1 und für den Nachname 2 zurück.
Aber im Browser erhalte ich beim Feld Nachname 12.
Ich wollte das gerne im Feld Vorname 1 und im Feld Nachname 2 erscheint.
Wie von ihnen vorgeschlagen mit json.parse bekomme ich nicht umgesetzt
und finde auch nirgends ein Beispiel wie es richtig gemacht wird, wo ich
auch selbst sehen kann wies geht.
>> Öffne doch aml die Browser Console> Ich habe zurzeit nur den edge Browser von Windows10.
Ja und? Du kannst ja mal F12 drücken (wie bei allen anderen Browsern)
und staunen, was dann passiert.
> Wie von ihnen vorgeschlagen mit json.parse bekomme ich nicht umgesetzt
Weil du die Grundlagen vom programmieren nicht verstanden hast. Das ist
so einfach, dass es jeder hinbekommt, der die Grundlagen gelernt hat.
Fang doch endlich mal an, kleine Brötchen zu backen. Ich versuche doch
auch nicht, ein Kraftwerk von RWE umzubauen ohne zu verstehen, wie ein
Mofa funktioniert.
vielen Dank erstmal Herr Albrecht,
Wie gesagt bekomme ich das so nicht umgesetzt. :(
Ich finde auch nirgends ein Beispiel dafür zum üben.
Dann muss ich für jedes Eingabefeld ein Submid Button machen dann geht
es, aber so wie ich das gerne wollte gehts nicht.
mfg
conny schrieb:> Wie gesagt bekomme ich das so nicht umgesetzt. :(
Ja weil du blöd bist, anders kann ichs nicht sagen!
Lern die Grundlagen und wie sehen uns vllt wieder.
Und wieso hat nen Mod jetz von Stefan Us den Post gelöscht?
> Und wieso hat nen Mod jetz von Stefan Us den Post gelöscht?
Ich hatte eine völlig deplatzierte Hassrede von einem hier berüchtigten
Troll kommentiert und ihn damit gefüttert. Sollte man nicht machen.
conny schrieb:> Wiegesagt auf dem Webserver ist ein cgi script das gibt mir dann> für den Vorname 1 und für den Nachname 2 zurück.> Aber im Browser erhalte ich beim Feld Nachname 12.> Ich wollte das gerne im Feld Vorname 1 und im Feld Nachname 2 erscheint.>
Für die Profis unter ihnen ist das Sicherlich ein klacks, ist es denn
möglich ein link mir zu zeigen wo dies so gemacht wird.
Nein, weil du kein Profi bist.
Du brauchst eine Ausbildung mit Lehrer, der Dir den Stoff vorkaut und
Übungsaufgaben gibt, die Dich schrittweise bis zum Profi weiter
entwickeln.
Die Alternative (Du entwickelst dich selber Schrittweise weiter) lehnst
du ja seit Monaten konsequent ab.
Den Profi-Status kann man sich weder erkaufen, noch irgendwo mit einem
Kabel ins Gehirn einspeisen. Man muss ihn erlernen.
Mir fallen nur wenige Berufe/Hobbies ein, die man ohne Lernen ausüben
kann. Zum Beispiel Mülltonnen umwerfen, kleinere Kinder abzocken,
Fernseh gucken, Putzen, Saufen, ...
Das ist aber ganz offensichtlich nicht die Art von Beschäftigung, die Du
magst. Also reiß Dich bitte zusammen und lerne dein Hobby. So etwas
braucht Zeit, und zwar mehrere Jahre! Ist ganz normal.
Solange ich Doch kenne, hast du bezüglich µC Programmierung noch fast
gar nichts gelernt. Dir fehlen immer noch die Grundlagen. Du bist immer
noch bei der Methode copy+paste.
Kennst du den Unterschied zwischen Mozart und einem Kassettenrecorder?
Mozart hat Musik gemacht, du bist der Kassettenrecorder, der sie
kopiert.
Jetzt schlüsseln wir das mal auf. document ist eine globale Variable,
welche eine Referenz auf die document Node des Fensters beinhaltet. Die
document node, ist wie fast alles andere auch, ein Objekt. Dieses ist
eine Instanz vom Typ Document, welcher auch vom Typ Node abgeleitet ist.
Wie jedes andere Element auch hat es Eigenschaften, manchmal auch als
Properties oder Members bezeichnet. Eine dieser Eigenschaften ist/hat
den Namen/Key getElementById . getElementById enthelt eine Referenz
auf eine Funktion, man redet daher von der Funktion getElementById oder
der Methode getElementById. Eine Methode ist eine Eigenschaft eines
Objekts dessen Wert/Inhalt eine Funktion ist. Die runden Klammern nach
dem Identifier getElementById sind der JavaScript Syntax/Schreibweise
für einen Funktionsaufruf. "elementid" ist ein String literal. Es ist
der erste eintrag in den Klammern des Funktionsaufruf, und somit das
erste Argument das übergeben wird. Die Funktion getElementById gibt
wiederum ein Objekt zurück. Dieses hat einen Typ der vom Typ HTMLElement
abgeleitet ist, welcher vom typ Node abgeleitet ist. Wir gehen davon
aus, Dass wir ein Element vom HTMLInputElement bekommen haben. Das
Objekt repräsentiert unser Input element. Wie jedes Objekt hat auch
dieses Eigenschaften. Die Eigenschaft value des HTMLInputElements
repräsentiert dessen Inhalt. Mit dem = setzen wir den Wert von value,
und der Browser zeigt diesen im Eingabefeld an. Nach dem = steht
"inhalt". es ist ein String Literal. Dieses wird als neuer Wert
zugewiesen.
Es ist zu beachten, dass statt den String Literalen auch Variablen,
Berechnungen, und beliebige andere Ausdrücke dastehen können.
Nun zu der Zeile:
1
"12".split('');
Hier verwenden wir das String Literal, (welches ein Primitiver datentyp
ist), als Objekt. Split ist eine Methode des Objekts. Diese wird mit
einem Leeren string als 1tes Argument aufgerufen. Split gibt deshalb ein
Array zurück, das jedes Zeichen einzeln enthält. Man kann diesen wert
z.B. in eine Variable speichern:
1
varcharacters="12".split('');
Der String kann auch von einer Variable oder sonst wo kommen:
1
varstring="12";// Der String "12" wird in der Variable string gespeichert
2
varcharacters=string.split('');// Der rückgabewert von Split, welcher hier ["1","2"] ist, wird in characters gespeichert
Jetzt zu JSON.parse:
1
JSON.parse('{"vorname":123,"nachname":456}');
Es handelt sich bei JSON.parse um die Methode parse des Objekts in JSON,
welches eine globale Variable ist. Diese Methode/Funktion nimmt einen
String als erstes Argument. Dieser String sollte gemäs dem JSON Standard
formatiert sein. Die Rückgabe ist ein Objekt. Wie jedes Objekt hat
dieses Eigenschaften. In diesem fall die Eigenschaften, welche in JSON
objekt, welches als String formatiert vorliegt, spezifiziert wurden.
JSON.parse parst den String, um daraus das Objekt zu machen, welches es
zurück gibt. Dieses Objekt enthält die Eigenschaften vorname und
nachname. Wie bei jedem Objekt kann man in JavaScript mit .vorname und
.nachname, also mit .eigenschaftsname auf diese zugreifen. Wie beim
vorhergehenden Beispiel kann statt dem String ein beliebiger Ausdruck
dastehen, und es ist möglich den Rückgabewert in einer Variable zu
Speichern:
1
varjsonstring='{"vorname":123,"nachname":456}';
2
varobject=JSON.parse(jsonstring);
Man kann dan wie immer auf die Eigenschaften des Objekts zugreifen, hier
z.B. über die Variable object:
1
object.vorname// vorname enthält 123
Natürlich muss man nicht zwangslaufig eine Variable verwenden, man kann
auch direckt auf die eigenschaft des von der Funktion zurückgegebenen
Objekts zugreifen, wie im ersten Beispiel:
Schlussfolgernd kann man darauf schliessen, dass du dann beim ersten
Beispiel den Inhalt des Eingabefelds statt auf "inhalt", auch auf den
inhalt von z.B. object.vorname setzen könntest.
Hallo Herr Abrecht,
Ich habe mir das mehrmals Durchgelesen und versucht so wie sie das
Beschrieben haben umzusetzen.
Aber ich erhalte nur beim Nachnamen den Wert.
Ich bekomme das nun nicht richtig umgesetzt
Dann hab ich nochmal etwas anderes versuchst wo ich die Werte auch in
meine Felder zurückbekomme nachdem das Formular abgesendet ist.
Ist vielleicht nicht ganz richtig, so wird es richtig angezeigt.
Besser wäre das natürlich wie von ihnen beschrieben.
> text = document.getElementById("id").value = xmlhttp.responseText;
Was soll das werden?
Hat das Dokument ein Formularfeld mit der id "id"? Ich sehe keins.
Und warum schreibst du da dann den Namen rein, wenn es doch "id" heisst?
Ich schreibe doch auch nicht die Postleitzahl in ein Feld Names
"Hausnummer"!
Stefan U. schrieb:>> text = document.getElementById("id").value => xmlhttp.responseText;>> Was soll das werden?>> Hat das Dokument ein Formularfeld mit der id "id"? Ich sehe keins.> Und warum schreibst du da dann den Namen rein, wenn es doch "id" heisst?>> Ich schreibe doch auch nicht die Postleitzahl in ein Feld Names> "Hausnummer"!
id="vorname"
id="nachname"
Das Formularfeld hat doch 2 Einträge Vorname und nachname.
sonst muss ich das ja 2 mal senden für vorname und nachname
> document.getElementById("id")
Findet das Element mit der id "id", das nicht existiert.
Die Felder für Vorname und Nachname haben andere id's, nämlich "vorname"
und "nachname".
Du scheiterst immer noch an den Grundlagen. Wenn ich jemandem Javascript
beibringe, ist das der Lehrstoff des ersten Tages. Embedded Webserver
Programmieren wäre der Lehrstoff nach einigen Monaten.
Conny, du ignorierst völlig deinen Horizont. Du willst eine Rakete
entwicklen, kannst aber nichtmal eine Kerze anzünden.
Nichtmal googeln kann er...
Seit wann nimmt denn getElementById mehr als 1 Argument?
Dei Seite ist sogar auf Deutsch, also nichtmal da ist eine Ausrede
möglich so ignorant zu sein:
https://wiki.selfhtml.org/wiki/JavaScript/DOM/Document/getElementByIdStefan U. schrieb:> Conny, du ignorierst völlig deinen Horizont. Du willst eine Rakete> entwicklen, kannst aber nichtmal eine Kerze anzünden.
Dem ist nichts hinzuzufügen.
Mw E. schrieb:> Nichtmal googeln kann er...> Seit wann nimmt denn getElementById mehr als 1 Argument?>> Dei Seite ist sogar auf Deutsch, also nichtmal da ist eine Ausrede> möglich so ignorant zu sein:> https://wiki.selfhtml.org/wiki/JavaScript/DOM/Docu...>
ich will doch nicht für jedes eingabefeld einen Button
> Stefan U. schrieb:>> Conny, du ignorierst völlig deinen Horizont. Du willst eine Rakete>> entwicklen, kannst aber nichtmal eine Kerze anzünden.>> Dem ist nichts hinzuzufügen.
stimmt doch garnicht!
Mw E. schrieb:> Ehrliche Frage: Biste eigentlich völlig blöde?> Das war nur das Beispiel um getElementById zu Beschreiben.> Verstanden hastes ja offensichtlich nicht.
Natürlich hab ich das als Beispiel verstanden!
ich fragte wie ich nun meine werte für Vorname und Nachname angezeigt
bekomme.
so bekomme ich nur den wert für Nachname in bveiden Feldern angezeigt
Nöhhh...
Kannst ja nichtmal meine Fragen mit jeweils 10 Sätzen beantworten.
Die sind nicht dazu da um dich zu ärgern, sondern um abzuklopfen was
denn überhaupt an Minimalwissen vorhanden ist.
Vor allem wie denn die Variablen vom Browser zum Webserver wandern.
Aber da kommt ja nichts.
Nur rumgeheule, dass deine Kopierpaste nicht funktioniert und Andere
sollens richten.
So funktioniert das in einem Forum nunmal nicht.
Kauf dir nen Freelancer ein, der macht dir das für teuer Geld fertig.
Mw E. schrieb:> Nöhhh...>> Kannst ja nichtmal meine Fragen mit jeweils 10 Sätzen beantworten.> Die sind nicht dazu da um dich zu ärgern, sondern um abzuklopfen was> denn überhaupt an Minimalwissen vorhanden ist.> Vor allem wie denn die Variablen vom Browser zum Webserver wandern.> Aber da kommt ja nichts.
????????
Das habe ich doch nun schon Ausreichend erklärt, ein Formular mit 2
Feldern.
Das wird auch richtig empfangen im CGI Handler.
Wenn im Vorname und Nachname etwas eigegeben wird soll im Browser bei
Vorname 1 und Nachname 12 stehen.
Ich denke auch, dass du genug "Hilfe" bekommen hast.
Was du erwartest ist, dass andere dir die Lösung auf dem Silbertablett
präsentieren.
Wenn ich mir den code angucke dann bezweifel ich, dass auch nur 10 %
wirklich von dir sind. Eigenleistung = null!
Sollte das für eine Abschlussarbeit etc. sein dann mal gute nacht.
Anstatt kampfhaft in foren nach lösungen zu suchen wäre es besser sich
mal ordentlich zeit zu nehmen und sich richtig einzuarbeiten.
Das ist nämlich sinn der sache. deswegen hat man auch an allen unis, fhs
etc mit einarbeiungsphasen über ein halbes jahr lang zeit.
diese zeit ist nicht dafür gedacht nach leuten zu suchen die dir alle
lösungen vorschreiben sondern dient dazu dir wissen und fertigkeiten
anzueignen.
13231 schrieb:> Ich denke auch, dass du genug "Hilfe" bekommen hast.> Was du erwartest ist, dass andere dir die Lösung auf dem Silbertablett> präsentieren.>> Wenn ich mir den code angucke dann bezweifel ich, dass auch nur 10 %> wirklich von dir sind. Eigenleistung = null!>> Sollte das für eine Abschlussarbeit etc. sein dann mal gute nacht.> Anstatt kampfhaft in foren nach lösungen zu suchen wäre es besser sich> mal ordentlich zeit zu nehmen und sich richtig einzuarbeiten. Das ist> nämlich sinn der sache. deswegen hat man auch an allen unis, fhs etc mit> einarbeiungsphasen über ein halbes jahr lang zeit.>> diese zeit ist nicht dafür gedacht nach leuten zu suchen die dir alle> lösungen vorschreiben sondern dient dazu dir wissen und fertigkeiten> anzueignen.
Und nein das ist keine Abschlussarbeit.
Ich suche nicht nach jemand dervmir das aufn Silbertablet serviert!
Ralf schrieb:> ja das sind dann die leute die sich mit fremden federn schmücken> und auch noch angeben, dass sie eine aufgabe in "rekordzeit" erledigt> haben
Nein das mache ich nicht.
13231 schrieb:> Ich denke auch, dass du genug "Hilfe" bekommen hast.> Was du erwartest ist, dass andere dir die Lösung auf dem Silbertablett> präsentieren.>> Wenn ich mir den code angucke dann bezweifel ich, dass auch nur 10 %> wirklich von dir sind. Eigenleistung = null!>> Sollte das für eine Abschlussarbeit etc. sein dann mal gute nacht.> Anstatt kampfhaft in foren nach lösungen zu suchen wäre es besser sich> mal ordentlich zeit zu nehmen und sich richtig einzuarbeiten. Das ist> nämlich sinn der sache. deswegen hat man auch an allen unis, fhs etc mit> einarbeiungsphasen über ein halbes jahr lang zeit.>> diese zeit ist nicht dafür gedacht nach leuten zu suchen die dir alle> lösungen vorschreiben sondern dient dazu dir wissen und fertigkeiten> anzueignen.
Und nein das ist keine Abschlussarbeit.
Ich suche nicht nach jemand der mir das aufn Silbertablet serviert!
Ralf schrieb:> ja das sind dann die leute die sich mit fremden federn schmücken> und auch noch angeben, dass sie eine aufgabe in "rekordzeit" erledigt> haben
Nein das mache ich nicht.
Oh Oh, posten unter 2 Nicknames das gibt Ärger.
>Ebenso nicht erlaubt ist:> * Mutwillige Störung von Diskussionen ("trollen")> * Beteiligung an einer Diskussion unter verschiedenen Namen
Mw E.=
Wissen sie, sie können hier nur die Leute Denozieren ansonsten kommt von
ihnen nichts weiter.
Ich habe mehrmals höflich gefragt und sie beschimpfen hier nur.
conny schrieb:> Mw E.=> Wissen sie, sie können hier nur die Leute Denozieren ansonsten kommt von> ihnen nichts weiter.>
de·nun·zi̱e̱·ren
Verb [mit OBJ]
1.
abwert.
(jmd. denunziert jmdn. bei etwas Dat.) jmdn. aus niederen Beweggründen
bei einer Behörde anzeigen.
"jemanden bei der Polizei denunzieren"
2.
abwert.
(jmd. denunziert etwas als etwas) etwas öffentlich als negativ
beurteilen oder kritisieren, so dass dadurch zugleich eine Person
angegriffen wird.
conny schrieb:> Ich habe mehrmals höflich gefragt und sie beschimpfen hier nur.
Zwischen höflich Fragen und nur abgreifen besteht dann aber schon ein
kleiner Unterschied ;)
Mw E. schrieb:> conny schrieb:> Ich habe mehrmals höflich gefragt und sie beschimpfen hier nur.>> Zwischen höflich Fragen und nur abgreifen besteht dann aber schon ein> kleiner Unterschied ;)
Ich will hier NICHTS abgreifen!,
ich hatte mehrmals gefragt wie Mann das macht und obs irgendwo ein
Beispiel gibt wo ich selbst üben kann und sehe wie das gemacht wird.
Bei deinem Wissensstand bringen aber Beispiele NICHTS.
Da du diese einfach nicht verstehst.
Wie das passende Vorgehen aussieht wurde von Stefan Us, Daniel Abrecht
und mir schon mehrmals gesagt:
GRUNDLAGEN LERNEN!
Hast es ja nichtmal geschafft danach zu googeln wie man getElementById()
benutzt. Dann geb ich dir nen Link und dann heulste was rum von ->
conny schrieb:> ich will doch nicht für jedes eingabefeld einen Button
In Javascript haste dich bisher auch nicht eingelesen so wie der Code
aussieht und das geht wirklich an einem Abend wenn man schon etwas C
kann.
Aufgrund deiner fehlenden Wissensbasis und Ignoranz ist einfach keine
Hilfe möglich.
Deutlich Hinweise darauf werden ja von dir ignoriert auch wenn
konstruktive Links dabei sind. Dan kommt sofort der nächste
"Hilfeschrei".
Es sieht hier aber auch so aus wie Abgreifen, denn es ist Null
Eigeninitiative erkennbar und wenn es etwas auf dem Silbertablett gab,
kam gleich die nächste Frage zu genau dem gleichen Themenabschnitt, bloß
nicht das Hirn anwerfen.
Dann wunderste dich, dass das deutlichst gesagt wird und fängst das
Flennen an.
Also wie soll das hier jetzt weiter gehen?
Liegt alles bei dir!
bau dir die webseite komplett !!! am PC zusammen
die eingabefelder , die buttons usw ...
dann baust du dir die javascriptfunktionen
um an die daten zu kommen baust du einfach erstmal variablen ein wo
dein wert drinsteht
im browser kannst du debuggen und kannst prüfen ob die daten auch
korrekt vorliegen
nd erst jetzt nimmst du den µC dazu ...
dann sendest diese daten weg und testest mit einem breakpoint in deiner
IDE ob es auch so auf dem µC ankommt
in deiner CGI funktion ...
da kannst du die werte dann durchpharsen und was tun
dann hast du ertsmal einen Weg ... PC -> µC
die daten sollen ja auch wieder ausgelesen werden ...
weg 1:
lwip hat ein eigenes ssi system ... variablen werden hier mit tags beim
senden eingefügt
weg2:
nach dem pharsen die daten manipulieren und wegsenden ( GET/ POST
beachten )
weg 3:
datenübergabe erfolgt generell per ajax und austausch über extra datei(
xxx.json / xxx.xml ... )
abhängig davon musst du diese daten manipulieren ...
der browser muss diese nach dem absenden erneut abholen
das alles steht in drölfzig posts über dem hier ...
es sollte als anleitung eigentlich reichen.
wenn du nur das eine problem gelöst haben willst ... frag nach ob es
jemand fürn 50iger macht und gut ist
@conny
Es sind doch alle teile schon vorhanden, ich habe sogar noch versucht zu
erklären was diese tun. Du hast sicher schon bemerkt, dass
xmlhttp.responseText den vom Server zurückgegebenen Text als String
enthält. Du hast sicher bemerkt, dass du Strings mit .split beim
angegebenen Trennzeichen aufgespalten werden können, und ein Array der
Teile zurückgibt. Du hättest längst erkennen sollen, dass
document.getElementById("elementid") das Element mit der id "elementid"
zurückgebt, und du bei input Elementen den Inhalt mit .value auslesen &
setzen kannst. Es wurde auch schon gesagt, dass du solche Dinge in
Variablen zwischenspeichern kannst. Es ist doch jetzt wirklich nicht
schwer auf die Lösung zu kommen. Zuerst willst du den zurückgegebenen
String in xmlhttp.responseText mit .split(";") aufspalten. Du bekommst
beide Ergebnisse in einem Array. Da du 2 mal auf das Array zugreifen
musst, um die beiden Werte in die Eingabefelder zu schreiben, willst du
es in einer Variable zwischenspeichern. Dann setzt du einfach zuerst den
Inhalt des einen Eingabefelds auf das erste Element des Arrays mithilfe
der variable welches dieses enthält, und tust das nochmal für das andere
input Element und das zweite Element des Arrays. Ich verstehe nicht, wie
man so etwas Simples nicht erkennen kann.
So hab ich das Text[0] sollte den wert für vorname und text1[0] den wert
für Nachname enthalten.
Es steht aber nur der wert in Nachname drin Vorname bleibt leer.
Was wieder meine Aussage bestätigt, da hilft wer mit einem ausführlichen
Text.
Und was kommt?
Eine komplette Ignorierung und wieder ein kurzer Satz mit dem selben
falschen Code.
Conny, so wird das nichts hier!
Ich löse es mal auf, immerhin habe ich eine 1:1 Textbeschreibung
gemacht, und selbst das hast du nicht begriffen...
Daniel A. schrieb:> Zuerst willst du den zurückgegebenen> String in xmlhttp.responseText mit .split(";") aufspalten. Du bekommst> beide Ergebnisse in einem Array. Da du 2 mal auf das Array zugreifen> musst, um die beiden Werte in die Eingabefelder zu schreiben, willst du> es in einer Variable zwischenspeichern.
So lange den code schicken und nerven bis sich jemand erbarmt und dir
das alles verbessert?
Also jetzt ists eindeutig: du willst keine tipps ( die du ja jetzt in
breiter form bekommen hast) sondern nur lösungen.
Du beziehst dich nie auf den post der anderen weil du null ahnung hast.
Wenn du nicht verstehst was die anderen sagen bist du überhaupt nicht
eingearbeitet. Ergo kannst du nur eine lösung erwarten da du alle tipps
die man dir gibt aufgrund mangelndem wissen/faulheit nicht umsetzen
kannst.
Bist du dir sicher dass du in diesem bereich/projekt/was auch immer dran
bleiben willst?
Wenns nur ne einmalige sache zum abgeben und irgend etwas bestehen ist
ok. Dann lass dir das ding schreiben und gut ist.
Wenn du deine brötche in zukunft damit verdienen willst dann nimm die
tipps an und fang schleunigst an zu lernen!!!