• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Dropdown funktioniert nicht im Safari

alex0815

Neues Mitglied
Hallo,
ich bin ganz neu hier und hoffe auf Hilfe von euch ...
Ich habe eine Dropdownbox in html erstellt und diese läuft auf einem Mikrocontroller.
Anhand dieser Dropdownbox soll der ausgewählte Wert einem Parameter (INVA14) übergeben werden nachdem ich dann auf "Senden" klicke. Im FireFox und im IExplorer läuft's ohne Probleme. Jedoch im Safari und im Chrome klappt das nicht. Das wichtigste ist mir der Safari....
Vielleicht kann mir noch einer ein Tip dazu geben was ich ändern kann/muss.

Code:
<form id="form1" name="f10" method="post">\r\n
  <p>
      <select name="INVA14" size="3">

      <option value="0010">10 %</option>
      <option value="0020">20 %</option>
      <option value="0030">30 %</option>
      <option value="0040">40 %</option>
      <option value="0050">50 %</option>
      <option value="0060">60 %</option>
      <option value="0070">70 %</option>
      <option value="0080">80 %</option>
      <option value="0090">90 %</option>
      <option value="0100">100 %</option>
      </select>
  </p>
<br>
<input name="SUB" value="Senden" type="submit">
</form>


Vielen Dank schonmal ...
 
Was heißt denn „klappt das nicht“? Wie äußert sich das Problem?

Edit: ↓ Oops, guter Punkt.
 
Zuletzt bearbeitet:
Ergänze beim <form>-Tag mal das action-Attribut. Ich kann mich dunkel erinnern, dass das von einigen Browsern richtigerweise (da es Pflicht ist) falsch interpretiert wird.
 
Hi und dank schonmal.

Ergänze beim <form>-Tag mal das action-Attribut. Ich kann mich dunkel erinnern, dass das von einigen Browsern richtigerweise (da es Pflicht ist) falsch interpretiert wird.
Hab ich auch schon ausprobiert, einmal so: action="" und einmal mit der URL zwischen den "".

Was heißt denn „klappt das nicht“? Wie äußert sich das Problem?
Also einfach nur so das der ausgewählte Wert nicht dem Parameter übergeben wird.

Was ich jetzt anhand WireShark rausbekommen habe ist das beim FireFox die Post-Header und Post-Parameter im selben Paket geschickt werden. Während beim Safari die Parameter in einem 2. zusätzlichen Paket landen.
Das wird das Problem sein, welches ich aber überhaupt nicht weis zu beheben!

Kann man den Safari dazu bringen beides in einem Paket zu senden ???
 
Wäre es nicht sinnvoller, das Problem in der Serverimplementation zu lösen?

Ich habe spontan diese Aussage gefunden:

There is no guarantee to get all the sent data in one packet. The data can be fragmented at any level of network stack. 1) browser can send the data by two separate calls of send function; 2) OS network stack can split the data have been sent by one call into two packets because MTU limit; 3) the same can happen on network devices like router etc; 4) the two block of data can be joined inside network stack and sent as one packet.

- Webserver parsing chrome input from post request - Stack Overflow

Keine Ahnung, was da dran ist. Aber dass ein Protokoll Daten in mehrere Einzelpakete aufteilt, ist ja jetzt nicht sooo ungewöhnlich.

Eventuell auch noch interessant:

- HTTP Data chunks over multiple packets? - Stack Overflow

Aber um die konkrete Frage zu beantworten: Ich tendiere zu nein, zumindest was simple HTML-Mittel angeht. Vielleicht ist es möglich, eine Seite zu schreiben, die passende Header setzt (Suche etwa nach „http header disable chunking“ oder „http header disable chunked“ oder dergleichen). Falls das klappt (ich glaube nicht dran), würde das natürlich nur Seiten betreffen, die du kontrollieren kannst, und würde auch nur den Teil des Übertragungs-Stacks beeinflussen, den du kontrollieren kannst (siehe erster zitierter Kommentar).

Ob es im Safari eine Konfigurationseinstellung für sowas gibt, weiß ich nicht. Die Einschränkungen wären aber im Zweifel wohl dieselben.
 
Zwei Pakete? Wie sieht dein ganzer HTML-Code dazu aus? Ich tippe gerade spontan auf 2 ineinander liegende <form>-Elemente.
 
Also einfach nur so das der ausgewählte Wert nicht dem Parameter übergeben wird.
Bist du sicher? Vor allem was willst du mit einem Paketsniffer? Wichtiger wäre die Anwort auf die Frage: Wie verarbeitest du denn die Parameter?
 
Zuletzt bearbeitet von einem Moderator:
Ich vermute wie gesagt, dass die Server-Implementation nicht alle Feinheiten des HTTP-Protokolls unterstützt oder dass dort manche Fälle zumindest nicht korrekt behandelt werden.

Wir reden vermutlich in etwa von sowas:

- Arduino - WebServer
 
Ich vermute wie gesagt, dass die Server-Implementation nicht alle Feinheiten des HTTP-Protokolls unterstützt oder dass dort manche Fälle zumindest nicht korrekt behandelt werden.

Wir reden vermutlich in etwa von sowas:

- Arduino - WebServer

Hi und ja genau, daher arbeite ich auch gerade an der Server-Implementation... die muss da noch angepasst werden und nicht der html code... Ich melde mich mit der Lösung (wenn ich's hinbekomme ;-(..)
 
Zurück
Oben