Ajax-Request bei Buttonklick

Und bei OSPF müsste man sich selber darum kümmern?
Jedenfalls funktionieren tut es soweit leider noch nicht.
Vielleicht hilft dir der Servercode was:

Code:
void loop()
{
  Interface();
} // end main loop

void Interface() {
 
  EthernetClient client = Server.available();
  if (client) {
    if (client.connected()) {
      while (client.available()) {
        char ch = client.read();
        ...
        ...
        ...
       
      } //--- End of while client.available
    } //----- End of if client.connected
  } //------- End of if client
} //--------- End of Interface()

Ehrlich gesagt wenn ich mir den jetzt selber anschaue, müsste der "Befehl" ja doch zur Verfügung gestellt werden und nicht gesendet werden ... mhm :confused:
 
Und bei OSPF müsste man sich selber darum kümmern?
Weißt du denn überhaupt, was das ist?

Jedenfalls funktionieren tut es soweit leider noch nicht.
Signatur hat gesagt.:
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?


Vielleicht hilft dir der Servercode was:
...
a) So zusammengekürzt kann ich nicht einmal sicher erkennen,
welche Programmiersprache etc. das sein soll.
b) Trotzdem schaut es falsch aus.
Funktionen, die Interface und Loop heißen, und Loops,
die sich laut Namen und Kommentar zwar wiederholen, aber im Code nicht.

Ehrlich gesagt wenn ich mir den jetzt selber anschaue, müsste der "Befehl" ja doch zur Verfügung gestellt werden und nicht gesendet werden ... mhm :confused:
Was?
 
Weißt du denn überhaupt, was das ist?

Hab es kurz bei Wikipedia nachgelesen, sonderlich schlau bin ich daraus zwar nicht geworden, aber ziemlich sicher das dass nicht das ich was ich benötige.


a) So zusammengekürzt kann ich nicht einmal sicher erkennen,
welche Programmiersprache etc. das sein soll.

Sonderlich zusammengekürzt ist das garnicht, aber wenn es hilft - Es wird noch eine Klasse included:
Code:
#ifndef ethernet_h
#define ethernet_h

#include <inttypes.h>
//#include "w5100.h"
#include "IPAddress.h"
#include "EthernetClient.h"
#include "EthernetServer.h"
#include "Dhcp.h"

#define MAX_SOCK_NUM 4

class EthernetClass {
private:
  IPAddress _dnsServerAddress;
  DhcpClass* _dhcp;
public:
  static uint8_t _state[MAX_SOCK_NUM];
  static uint16_t _server_port[MAX_SOCK_NUM];
  // Initialise the Ethernet shield to use the provided MAC address and gain the rest of the
  // configuration through DHCP.
  // Returns 0 if the DHCP configuration failed, and 1 if it succeeded
  int begin(uint8_t *mac_address);
  void begin(uint8_t *mac_address, IPAddress local_ip);
  void begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dns_server);
  void begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dns_server, IPAddress gateway);
  void begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet);
  int maintain();

  IPAddress localIP();
  IPAddress subnetMask();
  IPAddress gatewayIP();
  IPAddress dnsServerIP();

  friend class EthernetClient;
  friend class EthernetServer;
};

extern EthernetClass Ethernet;

#endif

b) Trotzdem schaut es falsch aus.
Funktionen, die Interface und Loop heißen, und Loops,
die sich laut Namen und Kommentar zwar wiederholen, aber im Code nicht.

Ist es aber nicht, da der Server läuft und auf "192.168.2.109:8899/?Hallo" reagiert und es richtig ausführt. Ich möchte aber das man nicht immer Links aufrufen muss sondern einfach Knöpfe drückt.


Vergiss das wieder.
 
Immerhin ist jetzt klar, dass es nicht PHP, sondern C++ ist :rolleyes:
Verschoben zu JS, weil der Server anscheinend ja nicht die Frage ist.

Die eigentliche Frage stellt sich nach wie vor, was genau geht am Button nicht?
Wie genau hast du das in die Seite eingebaut?
Was passiert beim Klick auf den Button?
Was steht dabei in der Konsole deines Browsers?
 
Wow C++? Das ist abgeschlossen ... es geht hier um eine Website die sich mit dem Server verbinden und befehle senden kann, bei klick auf einen Button. Eenke eigentlich schon das man das mit Php oder vlt. eben auch mit JS macht, aber in keinem Fall mit C++ ? <-- Erledigt

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<input type="button" value="Das ist Button 1" onclick="funk('S122704')">
<script>
function funk(arg)
{
    $.ajax({
        url: 'http://192.168.2.109:8899',
        type: 'GET',
        data: arg
    });  
}
</script>
</body>
</html>

So sieht das aus, und die Konsole sagt: "Uncaught ReferenceError: $ is not defined"
 
Zuletzt bearbeitet:
es geht hier um eine Website die sich mit dem Server verbinden und befehle senden kann, bei klick auf einen Button. Eenke eigentlich schon das man das mit Php oder vlt. eben auch mit JS macht
Wenn du, wie bisher beschrieben, per Buttonklick etwas am Server auslösen willst
geht das mit JS, genau wie bisher auch schon gesagt wurde.
Dein gezeigter Teil vom Server-Code ist aber nun mal C++.
Stört ja nicht. Solange der Server funktioniert gibt es keinen Grund, daran herumzuändern.

Zum Code:
a) Der script-Teil in den head, statt body.
b) jQuery einbinden. (deswegen war oben die Frage danach, ob es verwendet werden kann)
 
Sehr schön ;D - Danke jetzt tut sich endlich mal was ^^.

Und zwar gibt der Server jetzt folgende Ausgabe:

GET /?S122704 HTTP/1.1
Host: 192.168.2.109:8899
Connection: keep-alive
Accept: */*
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,cs;q=0.2,fr;q=0.2


Diese sollte aber eigentlich so aussehen:

S122704

Außerdem muss die Seite neu geladen werden, ein beim 2. mal Klicken passiert sonst nichts mehr ...
 
Zuletzt bearbeitet:
Wenn ich aus dem GET ein POST mache dann bekomme ich dass:

POST / HTTP/1.1
Host: 192.168.2.109:8899
Connection: keep-alive
Content-Length: 7
Accept: */*
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,cs;q=0.2,fr;q=0.2

S122704


Auch interessant ^^
 
Bisher war ich der Meinung, dieser Server kann mit grundlegenem HTTP umgehen...
Hallo zusammen,

hab kaum eine Ahnung von Php oder Javascript, deshalb - Könnte mir jemand etwas zusammenbasteln, dass beim Klick auf einen Button, auf einer Website, das gleiche ausführt wie wenn man einen Link wie diesen aufrufen würde: 192.168.2.109:8899/?Hallo
Wenn du im Browser einen Link wie diesen aufrufst
sollte doch auch eine derartige Reaktion kommen.

Und dass die Seite dann steckt dürfte zB. daran liegen,
dass dein Server sich nicht HTTP-mäßig verhält und die Antwort noch ausständig ist.

Überleg doch bitte einmal detailliert, was du eigentlich willst und wie die Ausgangssituation ist.
 
Stimmt du hast recht, das eigentliche Ziel ist jetzt erreicht - Die Ausgaben sind nun identisch und das Problem mit der Seite neu laden konnte ich selber beheben durch ein "return false;".
Aber das mir auch noch Infos aufgelistet werden ist schlecht, könnte man diese nicht unterbinden?
Ansonsten müsste ich jetzt in der Tat meinen Server nochmal überarbeiten ...
 

Neue Beiträge

Zurück