AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Thema durchsuchen
Ansicht
Themen-Optionen

[JS] Probleme beim dyn. Erweitern von Forms mit AJAX

Ein Thema von faux · begonnen am 26. Okt 2006 · letzter Beitrag vom 1. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

[JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 26. Okt 2006, 21:27
Hallo!

Ich habe folgendes Problem:
Ich habe ein einfaches HTML-Formular:

Code:
<form action="admin_bills.php?mode=dopay" method="post" id="billform">
<div id="fields">
  <fieldset id="bill_1">
    <legend>Rechnung 1</legend>
    <label>Vertragsnummer: <input type="text" name="contract_ids[1]" onchange="contractchanged(this,1)" tabindex="1" /></label>
    <label>Bezahlter Betrag: <input type="text" name="paid_amounts[1]" tabindex="2" /></label><span id="out_1"></span>
</fieldset>


</div>
</form>
Also zwei Felder, und das war es dann auch schon. Der User kann jetzt mit einem Button, noch so ein 2-Felder-Set hinzufügen.
Per AJAX wird dann der HTML-Code angefordert und einfach per document.getElementById('fields').innerHTML += XMLHTTP.responseText; angefügt.
Soweit so gut; es funktioniert auch alles wunderbar. Das Problem ist nur: Wenn man im FF in bereits vorhandene Felder etwas geschrieben hat, werden diese wieder geleert, sobald man eine neue Zeile hinzufügen will.
Im IE funktioniert das allerdings.
Wie kann ich das lösen?

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#2

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 26. Okt 2006, 22:32
Ganz einfach: Vor dem absenden den inhalt in eine variable speichern, danach per ajax den request schicken und dann die felder mit den in der variable gespeicherten daten füllen Is villeicht nicht grad das beste, aber geht...
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 27. Okt 2006, 11:18
Naja, dass es so geht, ist klar, aber das kann ja auch nicht die "Lösung" sein, das ist imho eher ein Work-Around. Im IE funktioniert es ja auch ohne Probleme.

Grüße
Faux

Arg: Im FF 2.0 funktioniert Alt+S zum Absenden nicht mehr...
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#4

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 27. Okt 2006, 11:27
Zumindest dazu kann ich was sagen:
Zitat von faux:
Arg: Im FF 2.0 funktioniert Alt+S zum Absenden nicht mehr...
Siehe hier: http://www.delphi-forum.de/topic_ALT...ehr_65883.html
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 27. Okt 2006, 11:54
Zitat von faux:
Per AJAX wird dann der HTML-Code angefordert und einfach per document.getElementById('fields').innerHTML += XMLHTTP.responseText; angefügt.
Da du "innerHTML" neu zuweist, initialisiert FF den gesamten Bereich neu. Mache es einfach mit einem leeren Bereich (jetzt unabhängig von deinem Beispiel):
Code:
... Hier dein eigentliches HTML ...
<div id="append_here"></div>
und beim Update machst du dann
Code:
document.getElementById('append_here').outerHTML = XMLHTTP.responseText + '<div id="append_here"></div>';
Dadurch ersetzt du nur ein leeres Element durch den neuen Inhalt, die alten Formularfelder sollten bestehen bleiben.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 28. Okt 2006, 17:12
Hallo!

Da outerHTML meines Wissens nur von IE erkannt wird, habe ich es genau so wie du gelöst, nur mit innerHTML.
Danke sehr!
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 28. Okt 2006, 18:59
Zitat von faux:
... habe ich es genau so wie du gelöst, nur mit innerHTML.
Ich bin neugierig ... zeig's mir
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 28. Okt 2006, 19:56
Zitat von faux:
Da outerHTML meines Wissens nur von IE erkannt wird, habe ich es genau so wie du gelöst, nur mit innerHTML.
Hihi...du hattest das:
Code:
<div id="append_here"></div>
und fuegst das ein:
Code:
Foobar<div id="append_here"></div>
wenn du outerHTML setzt, hast du am Ende genau das.
Wenn du innerHTML setzt, hast du am Ende:
Code:
<div id="append_here">Foobar<div id="append_here"></div></div>


Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 28. Okt 2006, 20:07
1. Das ist kein valides HTML mehr (ID darf nur einmal vorkommen)
2. Du kannst so nicht noch einmal was anhängen
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX

  Alt 28. Okt 2006, 20:12
Zitat von Flocke:
1. Das ist kein valides HTML mehr (ID darf nur einmal vorkommen)
2. Du kannst so nicht noch einmal was anhängen
Wem sagst du das? Mir oder ihm? Ich weiss das schon, genau das hab ich ja erklaert (und zwar nicht dir, sondern ihm)

Dass eine ID nur einmal vorkommen kann, weiss ich auch; und dass man nicht nochmal was anhaengen kann bezweifle ich momentan; iirc gibt getElementById() das erste gefundene Element mit einer bestimmten ID zurueck.
Besides that, die Loesung mit outerHTML ist auch nicht grad besser, mich wuerde interessieren was Safari dazu sagt (der ist etwas zickig wenns um "inoffizielles" JS geht)

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz