Forum: Mikrocontroller und Digitale Elektronik lwip string auswerten


von conny (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich hab auf meiner Webseite für den LWIP Webserver eine Dropdown Liste 
mit mehreren Einträgen und hänge jetzt fest diese auszuwerten beim Lwip.
1
static char *LED_RGB_CGIHandler( int iIndex, int iNumParams, char *pcParam[], char *pcValue[] )
2
{
3
    int  index;
4
     
5
  index = FindCGIParameter ( "rgbw", pcParam, iNumParams );
6
    
7
  if(index != -1)
8
    {
9
      // num++;
10
       //snprintf((char *)(data_response_buf),4,"%d",num);
11
      // printf("data_response_buf:%s\r\n",data_response_buf);
12
       //printf("green:%s\r\n",pcValue[index]);  
13
      
14
       clear_response_bufer(data_response_buf);      //Çå³ý»º³åÇøµÄÄÚÈÝ
15
16
       
17
      
18
DrawString(0,350,"O.K",&Arial_16x25,LCD_COLOR_WHITE,LCD_COLOR_BLUE); 
19
          strcat((char *)(data_response_buf),"ok");
20
        
21
  
22
    }
23
    return RESPONSE_PAGE_SET_CGI_RSP_URL;
24
}

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Kann passieren und wo ist jetzt die Frage?
Willste uns wieder so trollen wie bei deinem letzten Thread?

von conny (Gast)


Lesenswert?

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

von conny (Gast)


Lesenswert?

könnte mir jemand weiterhelfen.

von Daniel A. (daniel-a)


Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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

von Markus F. (mfro)


Lesenswert?

Beharrlichkeit hast Du, das muss man dir lassen ...

von Stefan F. (Gast)


Lesenswert?

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.

von guest (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?

s/pcvalue/pcValue/

von conny (Gast)


Lesenswert?

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.
1
function Wohn_1() { loadXMLDoc("/led_wohna.cgi?wohna=1&t="+ Math.random(),function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) {    document.getElementById("wohna").src=xmlhttp.responseText; } }); }
2
3
4
5
<input type=button class=wse value="RGB" onClick="Wohn_1()">

von Daniel A. (daniel-a)


Lesenswert?

conny schrieb:
> Was ich meinte ist, wie kann ich in dem  HTML Funktionsaufruf Wohn_1();
> eine Variable mitgeben.

Na einfach einen Parameter spezifizieren:
1
function example( 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:
1
function toQueryString( p ){
2
  var ret = "";
3
  for( var k in p )
4
    ret += ( ret=='' ? '?' : '&' ) + encodeURIComponent(k) + '=' + encodeURIComponent(p[k]);
5
  return ret;
6
}
Kann man wie folgt verwenden:
1
loadXMLDoc(
2
  "/led_wohna.cgi" + toQueryString({
3
    wohna: 1,
4
    t: Math.random()
5
  }),
6
  function(){
7
    if( xmlhttp.readyState==4 && xmlhttp.status==200 ){
8
      document.getElementById("wohna").src = xmlhttp.responseText;
9
    }
10
  }
11
);

von Stefan F. (Gast)


Lesenswert?

Zum Beispiel so:
1
<input type=button class=wse value="RGB" onClick="Wohn_1(this)">
2
3
function Wohn_1(theButton)
4
{
5
  alert(theButton.value);
6
}

von conny (Gast)


Lesenswert?

hallo,
ich hab das wie von ihnen umgesetzt doch gehen tut nichts.
Was mache ich falsch

1
function Wohn_1a( p ){
2
  var ret = "";
3
  for( var k in p )
4
    ret += ( ret=='' ? '?' : '&' ) + encodeURIComponent(k) + '=' + encodeURIComponent(p[k]);
5
  return ret;
6
}
7
8
loadXMLDoc(
9
  "/led_wohna.cgi" + toQueryString({
10
    wohna: 1,
11
    t: Math.random()
12
  }),
13
  function(){
14
    if( xmlhttp.readyState==4 && xmlhttp.status==200 ){
15
      document.getElementById("wohna").src = xmlhttp.responseText;
16
    }
17
  }
18
);

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

conny schrieb:
>> Willste uns wieder so trollen wie bei deinem letzten Thread?
> nein

Also eine Glatte Lüge...

von Daniel A. (daniel-a)


Lesenswert?

Der Code für das Senden der Funktion sollte in Wohn_1a bleiben, und den 
Namen der Funktion toQueryString braucht nicht geändert werden.
So ungefähr:
1
// Ungetestet
2
3
function toQueryString( p ){
4
  var ret = "";
5
  for( var k in p )
6
    ret += ( ret=='' ? '?' : '&' ) + encodeURIComponent(k) + '=' + encodeURIComponent(p[k]);
7
  return ret;
8
}
9
10
function Wohn_1a( event, form ){
11
  loadXMLDoc(
12
    form.action + toQueryString({
13
      rgbw: form.rgbw_select.value,
14
      t: Math.random()
15
    }),
16
    function(){
17
      if( xmlhttp.readyState==4 && xmlhttp.status==200 ){
18
        document.getElementById("rgbw").src = xmlhttp.responseText;
19
      }
20
    }
21
  );
22
  event && event.preventDefault();
23
}
1
<form method="get" onsubmit="Wohn_1a(event,this); return false;" action="rgb_led.cgi">
2
  <select name="rgbw_select"> 
3
    <option value="r100">Rot100</option>
4
    <option value="r50">Rot50</option>
5
    <option value="r15">Rot15</option>
6
    <option value="G100">GRUEN100</option>
7
  </select>
8
  <input type="submit" value="Senden"/>
9
</form>

: Bearbeitet durch User
von conny (Gast)


Lesenswert?

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.


1
function toQueryString( p ){
2
  var ret = "";
3
  for( var k in p )
4
    ret += ( ret=='' ? '?' : '&' ) + encodeURIComponent(k) + '=' + encodeURIComponent(p[k]);
5
  return ret;
6
}
7
8
function Wohn_1a( event){
9
loadXMLDoc(
10
  "/led_wohna.cgi" + toQueryString({
11
    wohna: event,
12
    t: Math.random()
13
  }),
14
  function(){
15
    if( xmlhttp.readyState==4 && xmlhttp.status==200 ){
16
      document.getElementById("wohna").src = xmlhttp.responseText;
17
    }
18
  }
19
);
20
21
22
23
24
25
26
 <input type=button  value="0%" onClick="Wohn_1a(0)">
27
 <input type=button  value="25%" onClick="Wohn_1a(25)">
28
 <input type=button  value="50%" onClick="Wohn_1a(50)">
29
 <input type=button  value="100%" onClick="Wohn_1a(100)">

von Daniel A. (daniel-a)


Lesenswert?

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?

von conny (Gast)


Lesenswert?

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

von conny (Gast)


Lesenswert?

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



1
          function Wohn_1a_sta( event)
2
          {
3
            loadXMLDoc("/led_wohna_sta.cgi" + toQueryString({wohna: event,t: Math.random()}),
4
  
5
              function()
6
              {
7
                if( xmlhttp.readyState==4 && xmlhttp.status==200 )
8
                {
9
                  document.getElementById("wohna").src = xmlhttp.responseText;
10
                }
11
              }
12
            );
13
           }
14
15
      
16
          function Wohn_2a_sta( event)
17
          {
18
            loadXMLDoc("/led_wohnb_sta.cgi" + toQueryString({wohnb: event,t: Math.random()}),
19
  
20
              function()
21
              {
22
                if( xmlhttp.readyState==4 && xmlhttp.status==200 )
23
                {
24
                  document.getElementById("wohnb").src = xmlhttp.responseText;
25
                }
26
              }
27
            );
28
          }
29
30
31
32
function status()
33
{
34
   Wohn_1a_sta(1);
35
   Wohn_2a_sta(2);
36
}
37
38
39
<body onLoad="status()">
40
41
    <div id="wside" >
42
43
    <tw> WOHNZIMMER   </tw> 
44
45
      <w1>
46
       Wohnzimmer Decke.:                 
47
        <br>
48
          <img id="wohna" src="/E_off.gif"   class="rset" width="64" height="64" alt="layer">
49
50
        </br>
51
              <input type=button class=g100 value="0%" onClick="Wohn_1a(0)">
52
        <input type=button class=g100 value="25%" onClick="Wohn_1a(25)">
53
        <input type=button class=g100 value="50%" onClick="Wohn_1a(50)">
54
        <input type=button class=g100 value="75%" onClick="Wohn_1a(75)">
55
        <input type=button class=g100 value="100%" onClick="Wohn_1a(100)">
56
      </w1>
57
58
59
      <w2 > 
60
       Wohnzimmer Smooth: 
61
        <br>        
62
          <img id="wohnb"  src="/E_off.gif" class="rset" width="64" height="64" alt="layer"> 
63
64
        </br> 
65
      
66
        <input type=button class=g100 value="0%" onClick="Wohn_2a(0)">
67
        <input type=button class=g100 value="25%" onClick="Wohn_2a(25)">
68
        <input type=button class=g100 value="50%" onClick="Wohn_2a(50)">
69
        <input type=button class=g100 value="75%" onClick="Wohn_2a(75)">
70
        <input type=button class=g100 value="100%" onClick="Wohn_2a(100)"> 
71
        
72
      </w2>

von Stefan F. (Gast)


Lesenswert?

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?

von conny (Gast)


Lesenswert?

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

von Daniel A. (daniel-a)


Lesenswert?

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
2
function get( url, onload, onerror ){
3
  var xhr = new XMLHttpRequest();
4
  xhr.onload = function(){
5
    if( this.status != 200 ){
6
      if(onerror)
7
        onerror( "Error " + this.status );
8
    }else{
9
      var mime = this.getResponseHeader("Content-Type");
10
      var text = this.responseText;
11
      if( onload )
12
        onload( mime, text );
13
    }
14
  };
15
  xhr.onerror = function(){
16
    var error = this.error || this;
17
    if( onerror )
18
      onerror( error.message );
19
  };
20
  xhr.open( "GET", url );
21
  xhr.send();
22
}
23
24
function Wohn_1a_sta( event)
25
{
26
  get("/led_wohna_sta.cgi" + toQueryString({wohna: event,t: Math.random()}),
27
    function( mime, content )
28
    {
29
      document.getElementById("wohna").src = content;
30
    }
31
  );
32
}
33
34
35
function Wohn_2a_sta( event )
36
{
37
  get("/led_wohnb_sta.cgi" + toQueryString({wohnb: event,t: Math.random()}),
38
    function( mime, content )
39
    {
40
      document.getElementById("wohnb").src = content;
41
    }
42
  );
43
}
44
45
function status()
46
{
47
   Wohn_1a_sta(1);
48
   Wohn_2a_sta(2);
49
}

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.

von conny (Gast)


Lesenswert?

Funktioniert Tadellos!!!

Vielen Dank

Hätten sie für mich auch nochmal ein Quelle wo ich mir das nochmal 
Durchlesen kann.
mfg

von Daniel A. (daniel-a)


Lesenswert?

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/

von conny (Gast)


Angehängte Dateien:

Lesenswert?

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.
1
static char *SWITCH_CGIHandler( int iIndex, int iNumParams, char *pcParam[], char *pcValue[] )
2
{ 
3
   char switch_buffer[120];
4
   uint32_t i=0;
5
   int  index;
6
  
7
   switch_buffer[0] = 1;
8
   switch_buffer[1] = 2;
9
   switch_buffer[2] = 3;
10
   switch_buffer[3] = 4;
11
   switch_buffer[4] = 5;
12
   switch_buffer[5] = 6;
13
   switch_buffer[6] = 7;
14
   switch_buffer[7] = 8;
15
   switch_buffer[8] = 9;
16
   switch_buffer[9] = 10;
17
   switch_buffer[11] = 11;
18
   switch_buffer[12] = 12;
19
20
21
22
  
23
   /* We have only one SSI handler iIndex = 0 */
24
   index = FindCGIParameter ( "vorname", pcParam, iNumParams );
25
   clear_response_bufer(data_response_buf);      
26
  
27
  if(index != -1)
28
  {
29
     
30
    for (i=0; i<iNumParams; i++)
31
    {
32
33
      sprintf(read_write_buffer,"%d",switch_buffer[0]);
34
      
35
      strcat((char *)(data_response_buf),read_write_buffer);   
36
  }   
37
38
  }  
39
  /* uri to send after cgi call*/
40
return RESPONSE_PAGE_SET_CGI_RSP_URL;
41
}

von Daniel A. (daniel-a)


Angehängte Dateien:

Lesenswert?

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...

: Bearbeitet durch User
von conny (Gast)


Angehängte Dateien:

Lesenswert?

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

von Daniel A. (daniel-a)


Lesenswert?

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.

von conny (Gast)


Angehängte Dateien:

Lesenswert?

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
1
static char *SWITCH_CGIHandler( int iIndex, int iNumParams, char *pcParam[], char *pcValue[] )
2
{ 
3
   char switch_buffer[120];
4
   uint32_t i=0;
5
   int  index, index2;
6
  
7
   switch_buffer[0] = 1;
8
   switch_buffer[1] = 2;
9
   switch_buffer[2] = 3;
10
   switch_buffer[3] = 4;
11
   switch_buffer[4] = 5;
12
   switch_buffer[5] = 6;
13
   switch_buffer[6] = 7;
14
   switch_buffer[7] = 8;
15
   switch_buffer[8] = 9;
16
   switch_buffer[9] = 10;
17
   switch_buffer[11] = 11;
18
   switch_buffer[12] = 12;
19
20
21
22
  
23
   /* We have only one SSI handler iIndex = 0 */
24
   index = FindCGIParameter ( "vorname", pcParam, iNumParams );
25
        
26
   DrawString(0,50,pcParam[0],&Arial_16x25,WHITE,RED);  
27
   DrawString(0,79,pcValue[0],&Arial_16x25,WHITE,RED);  
28
   
29
  if(index != -1)
30
  {
31
     
32
    for (i=0; i<iNumParams; i++)
33
    {
34
      DrawString(0,150,pcValue[0],&Arial_16x25,WHITE,RED);  
35
      sprintf(read_write_buffer,"%d",switch_buffer[0]);
36
      
37
    
38
      strcat((char *)(data_response_buf),read_write_buffer);   
39
      
40
      if (strcmp(pcParam[i] , "nachname")==0)   
41
      { 
42
         sprintf(read_write_buffer,"%d",switch_buffer[11]);
43
      
44
         DrawString(0,400,pcParam[0],&Arial_16x25,WHITE,RED);  
45
         strcat((char *)(data_response_buf),read_write_buffer); 
46
      }
47
}
48
    
49
clear_response_bufer(data_response_buf); 
50
  }  
51
  /* uri to send after cgi call*/
52
return RESPONSE_PAGE_SET_CGI_RSP_URL;
53
}

von conny (Gast)


Angehängte Dateien:

Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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.

von conny (Gast)


Lesenswert?

Wäre es denn Möglich mir vielleicht nochmal zu helfen wie ich denn nun 
die beiden strings trennen kann.
mfg

von mastah (Gast)


Lesenswert?

Was du hier willst ist keine "Hilfe", sondern andere sollen dein Projekt 
machen.
Solch lernresistente Leute wie dich sieht man echt selten!

von conny (Gast)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

>  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.

von conny (Gast)


Angehängte Dateien:

Lesenswert?

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

von conny (Gast)


Lesenswert?

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

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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?

: Bearbeitet durch User
von conny (Gast)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?

Wenn beides wirklich immer nur ein Zeichen lang wäre, könte man folgende 
Dinge machen:
1
> "12".split('')
2
Array [ "1", "2" ]
3
4
> [].slice.apply("12")
5
Array [ "1", "2" ]
6
7
> "12".match(/^(\d)(\d)$/).slice(1)
8
Array [ "1", "2" ]

Wenn es mehr sind, brauchte man mindestens ein Trennzeichen:
1
> "123|456".split('|')
2
Array [ "123","456" ]
3
4
> "123|456".match(/^(\d*)|(\d*)$/).slice(1)
5
Array [ "123","456" ]

Wenn die Zuordnung nicht durch die Position gegeben ist, braucht man 
eine Key/Value zuordnung. Sowas:
1
> var res = {};
2
> "vorname:2:3\nnachname:6:7".split('\n').forEach(function(x){
3
>   var r=x.match(/^([^:]*):(.*)$/);
4
>   res[r[1]]=r[2];
5
> });
6
> res
7
Object { vorname: "2:3", nachname: "6:7" }

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?

von Stefan F. (Gast)


Lesenswert?

> 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

von conny (Gast)


Lesenswert?

Hallo Herr Abrecht,
Ich hab das so umgesetzt aber als Ausgabe erhalte ich wiederum auf dem 
Browser 12 und die beiden Eingabefelder sind auch weg.

von conny (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Herr Abrecht,
Ich hab das so umgesetzt aber als Ausgabe erhalte ich wiederum auf dem
Browser 12 und die beiden Eingabefelder sind auch weg.

von Daniel A. (daniel-a)


Angehängte Dateien:

Lesenswert?

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.

von conny (Gast)


Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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

von conny (Gast)


Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Da sind keine 10 Sätze pro Nummer, sondern nur oberflächliches blabla

von Daniel A. (daniel-a)


Angehängte Dateien:

Lesenswert?

Ich habe dir mal einige grundlegende Dinge Zusammengestellt, die man bei 
JavaScript wissen sollte. Versuche mal das PDF im Anhang zu verstehen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Kann man auch gleich in jsfiddle ausprobieren.

Erklärung zu jsfiddle:
https://blog.selfhtml.org/2013/10/11/jsfiddle-fuer-anfaenger-und-fortgeschrittene/

jsfiddle selbst:
https://jsfiddle.net/

von conny (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

>> Ö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.

von conny (Gast)


Lesenswert?

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

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

> 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.

von conny (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?

Das passt gerade irgendwie: 
http://www.commitstrip.com/en/2014/12/08/small-thing-to-do-before-coding/

Ich gebe nochmal einige Hinweise. Im bisherigen Code wurde der Inhalt 
eines Feldes Beispielsweise so gesetzt:
1
document.getElementById("elementid").value = "inhalt";

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
var characters = "12".split('');
Der String kann auch von einer Variable oder sonst wo kommen:
1
var string = "12"; // Der String "12" wird in der Variable string gespeichert
2
var characters = 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
var jsonstring = '{"vorname":123,"nachname":456}';
2
var object = 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:
1
JSON.parse('{"vorname":123,"nachname":456}').vorname

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.

: Bearbeitet durch User
von conny (Gast)


Angehängte Dateien:

Lesenswert?

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.

1
static char *SWITCH_CGIHandler( int iIndex, int iNumParams, char *pcParam[], char *pcValue[] )
2
{ 
3
   char ablage[3];
4
   char copy[10];
5
   
6
   uint32_t i=0;
7
   int  index;
8
9
   Open_Ordner("/net");
10
   read_pic(0,0,"WEB2.BMP");
11
   Close_Ordner();
12
13
   index = FindCGIParameter ( "w1", pcParam, iNumParams );
14
   clear_response_bufer(data_response_buf); 
15
   
16
    /* Check cgi parameter : example GET */
17
    for (i=0; i<2; i++)
18
    {
19
  
20
       //Wohnzimer an Stunde : MINUTE
21
       if (strcmp(pcParam[0] , "w1")==0)   
22
        {    
23
         decode_TEST(pcValue[0],ablage);  
24
  
25
         switch_buffer[0] = ablage[0];
26
          switch_buffer[1] = ablage[1];
27
        
28
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[0],switch_buffer[1]);  
29
         //DrawString(10,50,read_write_buffer,&Arial_16x25,WHITE,RED);         
30
        }
31
    
32
       //Wohnzimer aus Stunde : MINUTE 
33
       if (strcmp(pcParam[1] , "w2")==0)   
34
        {    
35
          decode_TEST(pcValue[1],ablage);  
36
  
37
          switch_buffer[2] = ablage[0];
38
          switch_buffer[3] = ablage[1];
39
        
40
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[2],switch_buffer[3]);  
41
         //DrawString(200,50,read_write_buffer,&Arial_16x25,WHITE,RED);         
42
        }
43
44
45
       //Schlafzimer an Stunde : MINUTE
46
       if (strcmp(pcParam[2] , "s1")==0)   
47
        {    
48
         decode_TEST(pcValue[2],ablage);  
49
  
50
         switch_buffer[4] = ablage[0];
51
          switch_buffer[5] = ablage[1];
52
        
53
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[4],switch_buffer[5]);  
54
         //DrawString(10,80,read_write_buffer,&Arial_16x25,WHITE,RED);         
55
        }
56
    
57
       //Schlafzimer aus Stunde : MINUTE 
58
       if (strcmp(pcParam[3] , "s2")==0)   
59
        {    
60
         decode_TEST(pcValue[3],ablage);  
61
  
62
         switch_buffer[6] = ablage[0];
63
         switch_buffer[7] = ablage[1];
64
        
65
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[6],switch_buffer[7]);  
66
         //DrawString(200,80,read_write_buffer,&Arial_16x25,WHITE,RED);         
67
        }
68
69
       //Kinderzimer an Stunde : MINUTE
70
       if (strcmp(pcParam[4] , "k1")==0)   
71
        {    
72
         decode_TEST(pcValue[4],ablage);  
73
  
74
         switch_buffer[8] = ablage[0];
75
          switch_buffer[9] = ablage[1];
76
        
77
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[8],switch_buffer[9]);  
78
         //DrawString(10,105,read_write_buffer,&Arial_16x25,WHITE,RED);         
79
        }
80
    
81
       //Kinderzimer aus Stunde : MINUTE 
82
       if (strcmp(pcParam[5] , "k2")==0)   
83
        {    
84
         decode_TEST(pcValue[5],ablage);  
85
  
86
         switch_buffer[10] = ablage[0];
87
         switch_buffer[11] = ablage[1];
88
        
89
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[10],switch_buffer[11]);  
90
         //DrawString(200,105,read_write_buffer,&Arial_16x25,WHITE,RED);         
91
        }
92
93
    
94
       //Küche an Stunde : MINUTE
95
       if (strcmp(pcParam[6] , "ku1")==0)   
96
        {    
97
         decode_TEST(pcValue[6],ablage);  
98
  
99
         switch_buffer[12] = ablage[0];
100
          switch_buffer[13] = ablage[1];
101
        
102
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[12],switch_buffer[13]);  
103
         //DrawString(10,125,read_write_buffer,&Arial_16x25,WHITE,RED);         
104
        }
105
    
106
       //Küche aus Stunde : MINUTE 
107
       if (strcmp(pcParam[7] , "ku2")==0)   
108
        {    
109
         decode_TEST(pcValue[7],ablage);  
110
  
111
         switch_buffer[14] = ablage[0];
112
         switch_buffer[15] = ablage[1];
113
        
114
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[14],switch_buffer[15]);  
115
         //DrawString(200,125,read_write_buffer,&Arial_16x25,WHITE,RED);         
116
        }  
117
118
       //BALKON an Stunde : MINUTE
119
       if (strcmp(pcParam[8] , "b1")==0)   
120
        {    
121
         decode_TEST(pcValue[8],ablage);  
122
  
123
         switch_buffer[16] = ablage[0];
124
          switch_buffer[17] = ablage[1];
125
        
126
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[16],switch_buffer[17]);  
127
         //DrawString(10,150,read_write_buffer,&Arial_16x25,WHITE,RED);         
128
        }
129
    
130
       //BALKON aus Stunde : MINUTE 
131
       if (strcmp(pcParam[9] , "b2")==0)   
132
        {    
133
         decode_TEST(pcValue[9],ablage);  
134
  
135
         switch_buffer[18] = ablage[0];
136
         switch_buffer[19] = ablage[1];
137
        
138
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[18],switch_buffer[19]);  
139
         //DrawString(200,150,read_write_buffer,&Arial_16x25,WHITE,RED);         
140
        }  
141
142
       //FLUR an Stunde : MINUTE
143
       if (strcmp(pcParam[10] , "f1")==0)   
144
        {    
145
         decode_TEST(pcValue[10],ablage);  
146
  
147
         switch_buffer[20] = ablage[0];
148
          switch_buffer[21] = ablage[1];
149
        
150
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[20],switch_buffer[21]);  
151
         //DrawString(10,175,read_write_buffer,&Arial_16x25,WHITE,RED);         
152
        }
153
    
154
        //FLUR aus Stunde : MINUTE 
155
       if (strcmp(pcParam[11] , "f2")==0)   
156
        {    
157
         decode_TEST(pcValue[11],ablage);  
158
  
159
         switch_buffer[22] = ablage[0];
160
         switch_buffer[23] = ablage[1];
161
        
162
         //sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[22],switch_buffer[23]);  
163
         //DrawString(200,175,read_write_buffer,&Arial_16x25,WHITE,RED);         
164
        }    
165
    }
166
    
167
      sprintf(read_write_buffer,("Wohnzimmer   %02d:%02d BIS"),switch_buffer[0],switch_buffer[1]);  
168
      DrawString(150,140,read_write_buffer,&Arial_16x25,Orange,BLACK); 
169
      
170
      sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[2],switch_buffer[3]);  
171
      DrawString(512,140,read_write_buffer,&Arial_16x25,Orange,BLACK); 
172
173
      sprintf(read_write_buffer,("Schlafzimmer %02d:%02d BIS"),switch_buffer[4],switch_buffer[5]);  
174
      DrawString(150,170,read_write_buffer,&Arial_16x25,Orange,BLACK); 
175
      
176
      sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[6],switch_buffer[7]);  
177
      DrawString(512,170,read_write_buffer,&Arial_16x25,Orange,BLACK); 
178
179
      sprintf(read_write_buffer,("Kinderzimmer %02d:%02d BIS"),switch_buffer[8],switch_buffer[9]);  
180
      DrawString(150,200,read_write_buffer,&Arial_16x25,Orange,BLACK); 
181
      
182
      sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[10],switch_buffer[11]);  
183
      DrawString(512,200,read_write_buffer,&Arial_16x25,Orange,BLACK); 
184
185
      sprintf(read_write_buffer,("Kueche       %02d:%02d BIS"),switch_buffer[12],switch_buffer[13]);  
186
      DrawString(150,230,read_write_buffer,&Arial_16x25,Orange,BLACK); 
187
      
188
      sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[14],switch_buffer[15]);  
189
      DrawString(512,230,read_write_buffer,&Arial_16x25,Orange,BLACK);
190
                              
191
      sprintf(read_write_buffer,("Balkon       %02d:%02d BIS"),switch_buffer[16],switch_buffer[17]);  
192
      DrawString(150,260,read_write_buffer,&Arial_16x25,Orange,BLACK); 
193
      
194
      sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[18],switch_buffer[19]);  
195
      DrawString(512,260,read_write_buffer,&Arial_16x25,Orange,BLACK);
196
                      
197
      sprintf(read_write_buffer,("Flur         %02d:%02d BIS"),switch_buffer[20],switch_buffer[21]);  
198
      DrawString(150,290,read_write_buffer,&Arial_16x25,Orange,BLACK); 
199
      
200
      sprintf(read_write_buffer,("%02d:%02d"),switch_buffer[22],switch_buffer[23]);  
201
      DrawString(512,290,read_write_buffer,&Arial_16x25,Orange,BLACK);
202
203
204
205
   strcat((char *)(data_response_buf), "\<form action=\"/switch.shtml\" method=\"get\">\<html>\<head>\<link rel=\"stylesheet\" type=\"text/css\" hreff=\"Z_style.css\"><title>SWITCH</title></head>\<body>\<table>\<tr><td> WOHNZIMMER:</td><td><input class=\"inpl\" type=\"text\" name=\"w1\" maxlength=\"5\" value=\"");
206
207
   sprintf(copy,("%02d:%02d"),switch_buffer[0],switch_buffer[1]);
208
   
209
   strcat((char *)(data_response_buf),copy);
210
   
211
   strcat((char *)(data_response_buf),"\"> BIS <input class=\"inpr\" type=\"text\" name=\"w2\" maxlength=\"5\" value=\"");
212
213
   sprintf(copy,("%02d:%02d"),switch_buffer[2],switch_buffer[3]);
214
215
   strcat((char *)(data_response_buf),copy);
216
   
217
   
218
   //SCHLAFZIMMER
219
   strcat((char *)(data_response_buf),"\"></td></tr>\<tr><td>SCHLAFZIMMER:</td><td><input class=\"inpl\" type=\"text\" name=\"s1\" maxlength=\"5\" value=\"");
220
221
   sprintf(copy,("%02d:%02d"),switch_buffer[4],switch_buffer[5]);
222
223
   strcat((char *)(data_response_buf),copy);
224
225
   strcat((char *)(data_response_buf),"\"> BIS <input class=\"inpr\" type=\"text\" name=\"s2\" maxlength=\"5\" value=\"");
226
227
   sprintf(copy,("%02d:%02d"),switch_buffer[6],switch_buffer[7]);
228
229
   strcat((char *)(data_response_buf),copy);
230
231
   
232
   //KINDERZIMMER
233
   strcat((char *)(data_response_buf),"\"></td></tr>\<tr><td>KINDERZIMMER:</td><td><input class=\"inpl\" type=\"text\" name=\"k1\" maxlength=\"5\" value=\"");
234
235
   sprintf(copy,("%02d:%02d"),switch_buffer[8],switch_buffer[9]);
236
237
   strcat((char *)(data_response_buf),copy);
238
239
   strcat((char *)(data_response_buf),"\"> BIS <input class=\"inpr\" type=\"text\" name=\"k2\" maxlength=\"5\" value=\"");
240
241
   sprintf(copy,("%02d:%02d"),switch_buffer[10],switch_buffer[11]);
242
243
   strcat((char *)(data_response_buf),copy);  
244
   
245
   
246
   //KUECHE
247
   strcat((char *)(data_response_buf),"\"/></td></tr>\<tr><td>KUECHE:</td><td><input class=\"inpl\" type=\"text\" name=\"ku1\" maxlength=\"5\" value=\"");
248
249
   sprintf(copy,("%02d:%02d"),switch_buffer[12],switch_buffer[13]);
250
251
   strcat((char *)(data_response_buf),copy);
252
   
253
   strcat((char *)(data_response_buf),"\"> BIS <input class=\"inpr\" type=\"text\" name=\"ku2\" maxlength=\"5\" value=\"");
254
255
   sprintf(copy,("%02d:%02d"),switch_buffer[14],switch_buffer[15]);
256
257
   strcat((char *)(data_response_buf),copy);
258
259
260
   
261
   //BALKON
262
   strcat((char *)(data_response_buf),"\"/></td></tr>\<tr><td>BALKON:</td><td><input class=\"inpl\" type=\"text\" name=\"b1\" maxlength=\"5\" value=\"");
263
264
   sprintf(copy,("%02d:%02d"),switch_buffer[16],switch_buffer[17]);
265
266
   strcat((char *)(data_response_buf),copy);
267
268
   strcat((char *)(data_response_buf),"\"> BIS <input class=\"inpr\" type=\"text\" name=\"b2\" maxlength=\"5\" value=\"");
269
270
   sprintf(copy,("%02d:%02d"),switch_buffer[18],switch_buffer[19]);
271
272
   strcat((char *)(data_response_buf),copy);
273
   
274
  //FLUR
275
   strcat((char *)(data_response_buf),"\"/></td></tr>\<tr><td>FLUR:</td><td><input class=\"inpl\" type=\"text\" name=\"f1\" maxlength=\"5\" value=\"");
276
277
   sprintf(copy,("%02d:%02d"),switch_buffer[20],switch_buffer[21]);
278
279
   strcat((char *)(data_response_buf),copy);  
280
  
281
   strcat((char *)(data_response_buf),"\"> BIS <input class=\"inpr\" type=\"text\" name=\"f2\" maxlength=\"5\"  value=\"");
282
283
   sprintf(copy,("%02d:%02d"),switch_buffer[22],switch_buffer[23]);
284
285
   strcat((char *)(data_response_buf),copy);   
286
   
287
   strcat((char *)(data_response_buf),"\"/></td></tr>\<tr align=\"justify\"><td colspan=2><INPUT class=\"bsend\" TYPE=submit VALUE=\"SEND\"></td></tr>\</table></form>");
288
289
 
290
  /* uri to send after cgi call*/
291
return RESPONSE_PAGE_SET_CGI_RSP_URL;
292
}

von conny (Gast)


Lesenswert?

Das Formular wird korrekt abgesendet und auch richtig im cgi handler 
empfangen.

In meinem Eingabefeld im Browser ändert sich nichts.




1
  var text;        
2
          function Test_formular2( event, form )
3
          {
4
            var params = getFormFields(form);
5
            params.t = Math.random();
6
            loadXMLDoc(form.action + toQueryString(params),
7
              
8
              function()
9
              {
10
                if( xmlhttp.readyState==4 && xmlhttp.status==200 )
11
                {
12
                               text = document.getElementById("id").value =  xmlhttp.responseText;
13
                               text = text.split(";");
14
                               document.getElementById("vorname").value=text[0]+"ok";
15
                               document.getElementById("nachname").value=text[1];
16
                            
17
                }
18
              }
19
            );
20
            event && event.preventDefault();
21
          }
22
23
24
25
26
<form  method="get" onsubmit="Test_formular2(event,this); return false;" action="/switchc.cgi">
27
   
28
  <label class="h2" form="person">Namenseingabe</label>
29
    <label for="vorname">Vorname</label> 
30
    <input type="text" name="vorname" id="vorname" maxlength="30">
31
 
32
  <label class="h2" form="person">Namenseingabe</label>
33
    <label for="nachname">Nachname</label> 
34
    <input type="text" name="nachname" id="nachname" maxlength="30">
35
  
36
    <input type="submit" value="Senden" />  
37
</form>

von Stefan F. (Gast)


Lesenswert?

> 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"!

von conny (Gast)


Lesenswert?

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

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Grundlagen will er ja nicht lernen dementsprechend gruselig ist auch der 
Code.

von Stefan F. (Gast)


Lesenswert?

> 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.

von Daniel A. (daniel-a)


Lesenswert?

Immerhin ist er einer Lösung schonmal etwas näher gekommen.

von conny (Gast)


Lesenswert?

Wenn ich das Formular absende bekomme ich nur im Feld Vorname die Werte 
für Vorname und Nachname.

Das Feld Nachname bleibt leer.

1
          function Test_formular2( event, form )
2
          {
3
            var params = getFormFields(form);
4
            params.t = Math.random();
5
            loadXMLDoc(form.action + toQueryString(params),
6
              
7
              function()
8
              {
9
                if( xmlhttp.readyState==4 && xmlhttp.status==200 )
10
                {
11
                  text = document.getElementById("vorname","nachname").value = xmlhttp.responseText;
12
                
13
                        text = text.split(";");
14
                                  document.getElementById("vorname").innerHTM=text[0]+;
15
                                  document.getElementById("nachname").innerHTML=text[1]; 
16
                }
17
              }
18
            );
19
            event && event.preventDefault();
20
          }

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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/getElementById

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.

von conny (Gast)


Lesenswert?

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!

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Ehrliche Frage: Biste eigentlich völlig blöde?
Das war nur das Beispiel um getElementById zu Beschreiben.
Verstanden hastes ja offensichtlich nicht.

von conny (Gast)


Lesenswert?

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
1
          function Test_formular2( event, form )
2
          {
3
            var params = getFormFields(form);
4
            params.t = Math.random();
5
            loadXMLDoc(form.action + toQueryString(params),
6
              
7
              function()
8
              {
9
                if( xmlhttp.readyState==4 && xmlhttp.status==200 )
10
                {
11
                   text = document.getElementById("vorname").value = xmlhttp.responseText;
12
                
13
                        text = text.split(";");
14
                                  document.getElementById("vorname").innerHTML=text[0];
15
                  
16
                  text1 = document.getElementById("nachname").value = xmlhttp.responseText;
17
                
18
                        text1 = text1.split(";");
19
                                  document.getElementById("nachname").innerHTML=text1[0];                  
20
                }
21
              }
22
            );
23
            event && event.preventDefault();
24
          }

von conny (Gast)


Lesenswert?

Kann mir denn hier wirklich keiner helfen wie ich nun die werte für 
Vorname und Nachname richtig angezeigt bekomme
1
          function Test_formular1( event, form )
2
          {
3
            var params = getFormFields(form);
4
            params.t = Math.random();
5
            loadXMLDoc(form.action + toQueryString(params),
6
              
7
              function()
8
              {
9
                if( xmlhttp.readyState==4 && xmlhttp.status==200 )
10
                {
11
                               text = xmlhttp.responseText;
12
                               text = text.split(";");
13
14
                               document.getElementById("vorname").value=text[0];
15
16
                  
17
                }
18
              }
19
            );
20
            event && event.preventDefault();
21
          }          
22
23
          function Test_formular2( event, form )
24
          {
25
            var params = getFormFields(form);
26
            params.t = Math.random();
27
            loadXMLDoc(form.action + toQueryString(params),
28
              
29
              function()
30
              {
31
                if( xmlhttp.readyState==4 && xmlhttp.status==200 )
32
                {
33
                                text = xmlhttp.responseText;
34
                                text = text.split(";");
35
    
36
                                document.getElementById("nachname").value=text[0];
37
38
                  
39
                }
40
              }
41
            );
42
            event && event.preventDefault();
43
          }
44
45
46
47
48
49
50
51
                    function test(event,form)
52
                    {
53
                        Test_formular1(event,form);
54
            Test_formular2(event,form);
55
          }
56
57
58
59
<form method="get" onsubmit="test(event,this); return false;" action="/switchb.cgi">
60
   
61
  <label class="h2" form="person">Namenseingabe</label>
62
    <label for="vorname">Vorname</label> 
63
    <input type="text" name="vorname" id="vorname" maxlength="30">
64
 
65
  <label class="h2" form="person">Namenseingabe</label>
66
    <label for="nachname">Nachname</label> 
67
    <input type="text" name="nachname" id="nachname" maxlength="30">
68
69
<input type="submit" value="Senden" />  
70
</form>
71
72
73
static char *SWITCH_CGIHandler( int iIndex, int iNumParams, char *pcParam[], char *pcValue[] )
74
{ 
75
   char switch_buffer[120];
76
   uint32_t i=0;
77
   int  index, index2;
78
  
79
   switch_buffer[0] = 1;
80
   switch_buffer[1] = 2;
81
   switch_buffer[2] = 3;
82
   switch_buffer[3] = 4;
83
   switch_buffer[4] = 5;
84
   switch_buffer[5] = 6;
85
   switch_buffer[6] = 7;
86
   switch_buffer[7] = 8;
87
   switch_buffer[8] = 9;
88
   switch_buffer[9] = 10;
89
   switch_buffer[11] = 11;
90
   switch_buffer[12] = 12;
91
92
93
94
  
95
   /* We have only one SSI handler iIndex = 0 */
96
   index = FindCGIParameter ( "vorname", pcParam, iNumParams );
97
        
98
   DrawString(0,50,pcParam[0],&Arial_16x25,WHITE,RED);  
99
   DrawString(0,79,pcValue[0],&Arial_16x25,WHITE,RED);  
100
   
101
  if(index != -1)
102
  {
103
     
104
    for (i=0; i<iNumParams; i++)
105
    {
106
      DrawString(0,150,pcValue[0],&Arial_16x25,WHITE,RED);  
107
      sprintf(read_write_buffer,"%d",switch_buffer[0]);
108
      
109
    
110
      strcat((char *)(data_response_buf),read_write_buffer);   
111
      
112
      if (strcmp(pcParam[i] , "nachname")==0)   
113
      { 
114
         sprintf(read_write_buffer,"%d",switch_buffer[11]);
115
      
116
         DrawString(0,400,pcParam[0],&Arial_16x25,WHITE,RED);  
117
         strcat((char *)(data_response_buf),read_write_buffer); 
118
      }
119
}
120
    
121
clear_response_bufer(data_response_buf); 
122
  }  
123
  /* uri to send after cgi call*/
124
return RESPONSE_PAGE_SET_CGI_RSP_URL;
125
}

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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.

von conny (Gast)


Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Nein haste nicht.

Aber da bemerkt man deine Oberflächlichkeit mit der die Sache angegangen 
wird.

: Bearbeitet durch User
von 13231 (Gast)


Lesenswert?

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.

von Ralf (Gast)


Lesenswert?

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

von andre (Gast)


Lesenswert?

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.

von conny (Gast)


Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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

von conny (Gast)


Lesenswert?

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.

von Ralf (Gast)


Lesenswert?

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.

von conny (Gast)


Lesenswert?

schade das mir hier keiner helfen kann mit dem Formular.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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 ;)

von conny (Gast)


Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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!

von hust (Gast)


Lesenswert?

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

von Daniel A. (daniel-a)


Lesenswert?

@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.

: Bearbeitet durch User
von conny (Gast)


Lesenswert?

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.
1
function Test_formular2( event, form )
2
          {
3
            var params = getFormFields(form);
4
            params.t = Math.random();
5
            loadXMLDoc(form.action + toQueryString(params),
6
              
7
              function()
8
              {
9
                if( xmlhttp.readyState==4 && xmlhttp.status==200 )
10
                {
11
                   text = document.getElementById("vorname").value = xmlhttp.responseText;
12
                
13
                        text = text.split(";");
14
                                  document.getElementById("vorname").innerHTML=text[0];
15
                  
16
                  text1 = document.getElementById("nachname").value = xmlhttp.responseText;
17
                
18
                        text1 = text1.split(";");
19
                                  document.getElementById("nachname").innerHTML=text1[0];                  
20
                }
21
              }
22
            );
23
            event && event.preventDefault();
24
          }

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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!

von Daniel A. (daniel-a)


Lesenswert?

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.
1
  var variableFuerArrayMitVorUndNachname = xmlhttp.responseText.split(";");

> Dann setzt du einfach zuerst den
> Inhalt des einen Eingabefelds auf das erste Element des Arrays mithilfe
> der variable welches dieses enthält,
1
  document.getElementById("vorname").value = variableFuerArrayMitVorUndNachname[0];

> und tust das nochmal für das andere
> input Element und das zweite Element des Arrays.
1
  document.getElementById("nachname").value = variableFuerArrayMitVorUndNachname[1];

Zusammengesetzt wäre das dann:
1
function Test_formular2( event, form ){
2
  var params = getFormFields(form);
3
  params.t = Math.random();
4
  loadXMLDoc(form.action + toQueryString(params),
5
    function(){
6
      if( xmlhttp.readyState==4 && xmlhttp.status==200 ){
7
        var variableFuerArrayMitVorUndNachname = xmlhttp.responseText.split(";");
8
        document.getElementById("vorname").value = variableFuerArrayMitVorUndNachname[0];
9
        document.getElementById("nachname").value = variableFuerArrayMitVorUndNachname[1];
10
      }
11
    }
12
  );
13
  event && event.preventDefault();
14
}

Ist das wirklich so schwer?!?

von Ralf (Gast)


Lesenswert?

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!!!

von Stefan F. (Gast)


Lesenswert?

Immerhin haben jetzt einige helfer einen Einblick in lwip bekommen 
obwohl sie das selbst gar nicht verwenden.

Nur conny nicht.

von hust (Gast)


Lesenswert?

hier war doch schonmal soetwas

Beitrag "LWIP Webserver"

von hust (Gast)


Lesenswert?

rofl .. war der selbe TE ^^
sorry

von pegel (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.