Hans A. Plast: Wie anders als mit onchange??

0 46

Wie anders als mit onchange??

Hans A. Plast
  • javascript
  1. 0
    ChrisB
    1. 0
      Hans A. Plast
      1. 0
        ChrisB
        1. 0
          Hans A. Plast
          1. 0
            ChrisB
            1. 0
              Hans A. Plast
              1. 0

                Response-Wert in Input Feld einsetzen?

                Hans A. Plast
                1. 0
                  EKKi
                  1. 0
                    Hans A. Plast
                    1. 0
                      Hans A. Plast
                      1. 0
                        EKKi
                        1. 0
                          Hans A. Plast
                    2. 0
                      EKKi
                      1. 0
                        Hans A. Plast
                        1. 0
                          EKKi
                          1. 0
                            Hans A. Plast
                            1. 0
                              EKKi
                              1. 0
                                Hans A. Plast
                                1. 0
                                  EKKi
                        2. 0

                          Danke @ EKKI

                          Hans A. Plast
                          1. 0
                            EKKi
                2. 0
                  Hans A. Plast
                  1. 0
                    Hans A. Plast
        2. 0
          dedlfix
          1. 0
            Hans A. Plast
  2. 0
    Joachim
    1. 0
      Hans A. Plast
      1. 1
        dedlfix
        1. 0
          Hans A. Plast
  3. 0
    Edgar Ehritt
    1. 0
      EKKi
      1. 0
        Edgar Ehritt
        1. 0
          EKKi
          1. 0
            Edgar Ehritt
    2. 0
      Hans A. Plast
      1. 0

        Disabled-Fields werden nicht alle enabled?

        Hans A. Plast
        1. 0
          EKKi
          1. 0
            Hans A. Plast
            1. 0
              Edgar Ehritt
              • menschelei
              1. 0
                Hans A. Plast
                1. 1
                  dedlfix
                  1. 0
                    Hans A. Plast
            2. 0
              EKKi
              • meinung
              1. 0
                Hans A. Plast
            3. 3
              ChrisB

Hallo Forum,

in einer Reihe von gleichwertigen Inputs eines Formulares will ich mit dem Ändern eines der Inputs einen Request absenden sowie verhindern, dass der User andere Inputs bedient.

Heißt das im Umkehrschluss, dass ich, wenn ich serverseitig verarbeiten will, nur über onchange-event und entsprechendem Ajax gehen muss?

Bitte jetzt nicht an event. falschen Ausdrücken festklammern., Erwähnen ja, aber versuchen, in den Fokus zu nehmen, was ich fragen will. Besser kann ich das einfach nicht ausdrücken. Es entspricht meinem fachlichen Niveau.

Danke. Hans

  1. Hi,

    in einer Reihe von gleichwertigen Inputs eines Formulares will ich mit dem Ändern eines der Inputs einen Request absenden sowie verhindern, dass der User andere Inputs bedient.

    Heißt das im Umkehrschluss, dass ich, wenn ich serverseitig verarbeiten will, nur über onchange-event und entsprechendem Ajax gehen muss?

    Du meinst, ob es zum übermitteln der Daten an ein Script auf dem Server nur eines AJAX-Requests bedarf, der per onchange gestartet wird, so dass auf das wirkliche Absenden des Formulars verzichtet werden kann?

    Ja, theoretisch schon.

    Wenn du einen Fallback für Nutzer ohne JavaScript haben willst, dann musst du aber dafür sorgen, dass deine serverseitige Verarbeitung der Daten auch mit „mehr” klarkommt, als dein maßgeschneiderter AJAX-Request liefert - nämlich ein u.U. komplett abgesandtes Formular, in dem vielleicht Werte für mehrere Eingabefehler vorhanden sind.

    Bitte jetzt nicht an event. falschen Ausdrücken festklammern., Erwähnen ja, aber versuchen, in den Fokus zu nehmen, was ich fragen will. Besser kann ich das einfach nicht ausdrücken. Es entspricht meinem fachlichen Niveau.

    Deshalb habe ich noch mal nachgefragt, ob das gemeint ist, was ich mich meinem fachlichen Verständnis hineininterpretiere. Bitte nicht falsch verstehen, ungeachtet eventueller kürzlich vorhandener Differenzen ;-)

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Du meinst, ob es zum übermitteln der Daten an ein Script auf dem Server nur eines AJAX-Requests bedarf, der per onchange gestartet wird, so dass auf das wirkliche Absenden des Formulars verzichtet werden kann?

      Na, nicht ganz.
      Ich möchte 2 Aktionen auslösen. Einmal sperren aller anderer Inputs (klappt für sich alleine schon sehr gut) und einmal den Request absenden.

      Das "wirkliche" (sprich per submit-Button) Absenden würde ich gerne mit einem zusätzlichen (?) hidden-input (?) versehen, sodaß mein Script weiß, dass da mehr kommt, als nur 1 Information. Wenn das der Fallback ist, ja, dann denke ich daran.
      Was User ohne Javascript angeht. Die machen keine Probleme, die kommen erst gar nicht auf die Seite ;-)

      Deshalb habe ich noch mal nachgefragt, ob das gemeint ist, was ich mich meinem fachlichen Verständnis hineininterpretiere. Bitte nicht falsch verstehen, ungeachtet eventueller kürzlich vorhandener Differenzen ;-)

      Nenee. So ist das doch ok und gehört dazu, damit man nicht über Wolle redet, wenn man Wolfgang meint und Wolle sagt. ;-))

      Grüße, Hans

      1. Hi,

        Ich möchte 2 Aktionen auslösen. Einmal sperren aller anderer Inputs (klappt für sich alleine schon sehr gut) und einmal den Request absenden.

        Gut, das war mir schon bewusst.
        Das Sperren der übrigen Felder kommt natürlich zuerst - und dann die Übermittlung der Daten an den Server, wobei hier theoretisch erst mal die beiden Optionen normales Absenden des Formulars und AJAX zur Auswahl stehen, und du letztere einsetzen möchtest.

        Das "wirkliche" (sprich per submit-Button) Absenden würde ich gerne mit einem zusätzlichen (?) hidden-input (?) versehen, sodaß mein Script weiß, dass da mehr kommt, als nur 1 Information. Wenn das der Fallback ist, ja, dann denke ich daran.

        Wenn der Submit-Button zum Absenden benutzt wurde, dann würdest du ja schon dessen name=value-Paar übermittelt bekommen, was bei AJAX nur dann der Fall wäre, wenn dein Script diesen Wert auch explizit mit in den Request packt. Die Idee mit dem hidden INPUT ist aber auch alles andere als verkehrt - denn wenn der Nutzer das Formular per Entertaste abschickt, dann bekommst du keinen Wert vom Submit-Button, und da wäre der hidden-value die simplere Entscheidungshilfe serverseitig.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Das Sperren der übrigen Felder kommt natürlich zuerst -

          Das dürfte doch clientmäßig ablaufen? Dürfte? Müsste sogar, oder?

          und dann die Übermittlung der Daten an den Server, wobei hier theoretisch erst mal die beiden Optionen normales Absenden des Formulars und AJAX zur Auswahl stehen, und du letztere einsetzen möchtest.

          Ja. Weil ich meinen Userkreis sehr gut eingrenzen kann. (Und z.B. an dieser Stelle bin ich froh, dass Du mir nicht erklärst, dass es ja eigentlich eine schwere Sünde ist, dass ich so viele Requests verursachen werde. Es wird sogar mit jedem Request ein mysql-db-update verbunden sein - ich weiß aber, es ist verantwortbar)
          Ajax will ich einsetzen, weil die Vorlage für meine Arbeit ein Excelformular ist. Javascript will ich hierfür hauptsächlich nicht einsetzen, weil ich ermöglichen möchte, dass auch 2 User gleichzeitig daran arbeiten können)

          Das "wirkliche" (sprich per submit-Button) Absenden würde ich gerne mit einem zusätzlichen (?) hidden-input (?) versehen, sodaß mein Script weiß, dass da mehr kommt, als nur 1 Information. Wenn das der Fallback ist, ja, dann denke ich daran.

          Die Idee mit dem hidden INPUT ist aber auch alles andere als verkehrt - denn wenn der Nutzer das Formular per Entertaste abschickt, dann bekommst du keinen Wert vom Submit-Button, und da wäre der hidden-value die simplere Entscheidungshilfe serverseitig.

          Wieder was gelernt ;-)

          Was Ajax angeht: Ich suche seit 3 Tagen nach guten Beispielen im Netz, was Ajax über jquery angeht. Irgendwie werde ich aber nicht wirklich fündig. Kennt jemand ein gutes Tutorial in deutsch zu diesem Thema?

          Danach wäre ich erstmal wieder weg und würde mich dann wieder melden, sobald ich Probleme bekomme, meine beiden Ziele (die dann aber solo beide funktionieren werden) miteinander zu kombinieren ;-)

          Grüße, Hans

          1. Hi,

            Das Sperren der übrigen Felder kommt natürlich zuerst -

            Das dürfte doch clientmäßig ablaufen? Dürfte? Müsste sogar, oder?

            Ja.

            Ja. Weil ich meinen Userkreis sehr gut eingrenzen kann. (Und z.B. an dieser Stelle bin ich froh, [...]

            Dachte ich mir :-)

            Was Ajax angeht: Ich suche seit 3 Tagen nach guten Beispielen im Netz, was Ajax über jquery angeht. Irgendwie werde ich aber nicht wirklich fündig. Kennt jemand ein gutes Tutorial in deutsch zu diesem Thema?

            Hast du die unter http://docs.jquery.com/Tutorials#Tutorials_auf_Deutsch angegebenen Quellen schon betrachtet?

            Ansonsten fällt mir spontan erst mal keines ein, welches sich speziell auf AJAX bezieht, aber vielleicht weiss da ja ein Mitleser noch was?

            MfG ChrisB

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
            1. Hast du die unter http://docs.jquery.com/Tutorials#Tutorials_auf_Deutsch angegebenen Quellen schon betrachtet?

              Nein. Die Seite kannte ich nicht, weil jquery für mich ganz neu ist. Ein, zwei Links kommen mir bekannt vor, aber ich gehe sie nochmal alle durch.

              Und melde mich, sobald ich in die Verquickung komme, Ziel1 und Ziel2 zu verbinden. Das wird nämlich für mich nicht so ganz einfach werden.

              Bis hierhin Dankeschön (den Thread natürlich für weitere gute Tips offen weiterverfolgend), Hans

              1. Hi,

                Ajax über jquery ist leider auch kein wirklicher Selbstläufer. Nach etlichen nicht funktionierenden Versuchen habe ich schließlich folgende Version erstellt, die auch wirklich läuft.

                  
                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
                "http://www.w3.org/TR/html4/strict.dtd">  
                <html>  
                <head>  
                	<script type="text/javascript" src="jquery.js"></script>  
                	<script type="text/javascript">  
                		$(document).ready(function() {  
                			$("#test_form").submit(function() {  
                				var u5val = $("#5").val();  
                				var u10val = $("#10").val();  
                				$.post("backend.php", {  
                				test5: u5val,  
                				test10: u10val }, function(data) {  
                					$("#re").html(data);  
                				});  
                				return false;  
                			});  
                		});  
                	</script>  
                	</head>  
                <body>  
                	<form id="test_form" method="post">  
                		<p>Test5: <input type="text" id="5" /></p>  
                		<p>Test10: <input type="text" id="10" /></p>  
                		<p>Summe: <input type="text" id="20" /></p>  
                		<p><input type="submit" value="abschicken" /></p>  
                	</form>  
                	<div id="re">  
                  
                	</div>  
                </body>  
                </html>  
                  
                ----------------------------  
                backend.php  
                <?php  
                  
                $erg5=$_POST['test5']*2;  
                $erg10=$_POST['test10']*2;  
                $erg20=$_POST['test5']+$_POST['test10'];  
                  
                echo ($erg5."<BR>".$erg10);  
                  
                ?>  
                
                

                Was ich aber noch nicht schaffe, ist folgendes:

                Ich würde gerne die Werte $erg5 und $erg10 nicht in ein DIV ausgeben, sondern hätte gerne, dass mir die jeweiligen Inputfelder überschrieben werden und die Summe in das Inputfeld mit der ID 20 geschrieben wird.

                Ich weiß aber nicht, wie ich sie ansprechen kann. Ich habe zwar eine sehr gute Seite zu genau diesem Thema gefunden und auch schon einige Variationen als passend auserkoren, aber es stimmte leider in keinem Fall.

                Wer kann mir da mal auf die Sprünge hgelfen?

                Grüße, Hans

                1. Mahlzeit Hans A. Plast,

                    		var u5val = $("#5").val();  
                    		var u10val = $("#10").val();  
                  

                  Das sieht interessant aus ...

                    <p>Test5: <input type="text" id="5" /></p>  
                    <p>Test10: <input type="text" id="10" /></p>  
                    <p>Summe: <input type="text" id="20" /></p>  
                  

                  ... und hat hier seine Ursache: <http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name@title=eine ID muss mit einem Buchstaben A-Z oder a-z beginnen> - von daher ist Dein HTML-Code invalide und der darauf aufsetzende Javascript-Code kann fehlerhaft sein.

                  Beseitige zunächst die Fehler im Fundament, bevor Du Dich an die Verzierung der Fassade machst.

                  Was ich aber noch nicht schaffe, ist folgendes:

                  Ich würde gerne die Werte $erg5 und $erg10 nicht in ein DIV ausgeben, sondern hätte gerne, dass mir die jeweiligen Inputfelder überschrieben werden und die Summe in das Inputfeld mit der ID 20 geschrieben wird.

                  Ich denke, da solltest Du in irgendeiner Form bei dieser Funktion ansetzen:

                  function(data) {  
                    $("#re").html(data);  
                  }
                  

                  Diese schreibt Dir ja die erhaltenen Daten zurück in das Element mit der ID "re". Wenn Du stattdessen jetzt die erhaltenen Werte aufdröselst, sollte es kein Problem sein, sie in die Eingabeelement mit den entsprechenden IDs zu übernehmen.

                  MfG,
                  EKKi

                  --
                  sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                  1. Beseitige zunächst die Fehler im Fundament, bevor Du Dich an die Verzierung der Fassade machst.

                    Danke. Ich habs sofort erledigt.

                    Ich denke, da solltest Du in irgendeiner Form bei dieser Funktion ansetzen:

                    function(data) {

                    $("#re").html(data);
                    }

                    
                    >   
                    > Diese schreibt Dir ja die erhaltenen Daten zurück in das Element mit der ID "re". Wenn Du stattdessen jetzt die erhaltenen Werte aufdröselst, sollte es kein Problem sein, sie in die Eingabeelement mit den entsprechenden IDs zu übernehmen.  
                      
                      
                    Jaja. Das dort der Knackpunkt ist, ist mir klar. Aber selbst nur eine der IDs anzusprechen, gelingt mir ja bisher nicht. Und damit bin ich  noch lange nicht am aufdröseln :-(  
                      
                    Grüße, Hans  
                      
                    
                    
                    1. Jaja. Das dort der Knackpunkt ist, ist mir klar. Aber selbst nur eine der IDs anzusprechen, gelingt mir ja bisher nicht. Und damit bin ich  noch lange nicht am aufdröseln :-(

                      Grüße, Hans

                      Ok. ich habs (allerdings mehr per Zufall) geschafft, das Input-Feld mit der ID z20 anzusprechen.

                      $("#z20").val(data)

                      Nun bin ich also an dem Punk "aufdröseln" angelangt. In welcher Form liegen denn data die Daten vor? Ist das ein array, das ich splitten könnte?

                      1. Mahlzeit Hans A. Plast,

                        Ok. ich habs (allerdings mehr per Zufall) geschafft,

                        Warum per Zufall? Woran genau hapert's mit dem Verständnis?

                        $("#z20").val(data)

                        Damit schreibst Du aber jetzt die gesamte Rückgabe des PHP-Skripts in das Eingabefeld ... (außerdem fehlt das abschließende Semikolon).

                        Nun bin ich also an dem Punk "aufdröseln" angelangt. In welcher Form liegen denn data die Daten vor?

                        In genau der, in der sie Dein PHP-Skript ausgibt. Ansonsten schau doch einfach nach ...

                        Ist das ein array, das ich splitten könnte?

                        Ähm ... nein, ist es nicht - und nein, es hat keinen Sinn, ein Array zu splitten. Vielleicht möchtest Du eher einen String (nämlich die Rückgabe Deines PHP-Skripts) in ein Array splitten?

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                        1. Ist das ein array, das ich splitten könnte?

                          Ähm ... nein, ist es nicht - und nein, es hat keinen Sinn, ein Array zu splitten. Vielleicht möchtest Du eher einen String (nämlich die Rückgabe Deines PHP-Skripts) in ein Array splitten?

                          Natürlich. Genau so herum wird ein Schuh draus. Genau das hatte ich auch gemeint.

                          Rest in "unserem" anderen Faden dieses Threads.

                    2. Mahlzeit Hans A. Plast,

                      Jaja. Das dort der Knackpunkt ist, ist mir klar.

                      Das ist schonmal gut. Was aber ist Dein konkretes Problem?

                      Aber selbst nur eine der IDs anzusprechen, gelingt mir ja bisher nicht.

                      Was z.B. verstehst Du unter "eine der IDs ansprechen"? Auf das entsprechende HTML-Element zuzugreifen? Genau das tust Du doch einige Zeilen höher:

                      var u5val = $("#5").val();  
                      var u10val = $("#10").val();
                      

                      Oder hast Du eher ein Problem damit, das was Dein PHP-Skript zurückliefert, in irgendeiner Form auszuwerten?

                      Schauen wir uns das doch mal etwas genauer an ... einerseits fällt mir auf, dass Du Dich darauf verlässt, dass in den übergebenen Parametern auch tatsächlich Zahlen enthalten sind:

                      $erg5=$_POST['test5']*2;  
                      $erg10=$_POST['test10']*2;  
                      $erg20=$_POST['test5']+$_POST['test10'];
                      

                      Vielleicht solltest Du vorher eine explizite Typkonvertierung in einen Fließkommawert vornehmen.

                      Der nächste Punkt ist der, dass AJAX ja *eigentlich* "Asynchronous Javascript and *XML*" heißt ... von XML sehe ich bei Dir aber gar nichts. Gut, das ist nicht schlimm - macht aber die Weiterverarbeitung der Rückgabewerte nur unnötig kompliziert. Du gibst jetzt einfach die beiden Ergebnisse durch ein "<BR>" (Großschreibung von Elementen ist bei HTML zwar OK, Du solltest Dir das aber eigentlich grundsätzlich *nicht* angewöhnen) getrennt aus.

                      echo ($erg5."<BR>".$erg10);

                      Du müsstest also die Rückgabe genau an diesem Trenner http://de.selfhtml.org/javascript/objekte/string.htm#split@title=aufsplitten, um die beiden einzelnen Werte (in Form eines Arrays) zu erhalten. Mit diesen solltest Du dann weiterarbeiten können ...

                      MfG,
                      EKKi

                      --
                      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                      1. Oder hast Du eher ein Problem damit, das was Dein PHP-Skript zurückliefert, in irgendeiner Form auszuwerten?

                        Nein. Mein Grundproblem war tatsächlich, dass ich mit dem Rückgabewert nicht zur ID des Input-Feldes kam.
                        Das habe ich inzwischen aber geschafft.

                        Und nun ist das Problem tatsächlich das von Dir angesprochene.

                        Schauen wir uns das doch mal etwas genauer an ... einerseits fällt mir auf, dass Du Dich darauf verlässt, dass in den übergebenen Parametern auch tatsächlich Zahlen enthalten sind:

                        Das mache ich nur, weil es ein reines Testscript ist. Später im Echtbetrieb mache ich das natürlich nicht mehr.

                        Der nächste Punkt ist der, dass AJAX ja *eigentlich* "Asynchronous Javascript and *XML*" heißt ... von XML sehe ich bei Dir aber gar nichts.

                        Weil es meine erste Ajax-Anwendung ist? XML? Ist das mit den /> am Ende usw.?

                        "<BR>" (Großschreibung von Elementen ist bei HTML zwar OK, Du solltest Dir das aber eigentlich grundsätzlich *nicht* angewöhnen)

                        Käse, das habe ich vor Jahren mal genau andersherum gelesen und da mein Editor das autom. vorgibt, sind inzwischen alle Scripte bei mir so.

                        Du müsstest also die Rückgabe genau an diesem Trenner http://de.selfhtml.org/javascript/objekte/string.htm#split@title=aufsplitten, um die beiden einzelnen Werte (in Form eines Arrays) zu erhalten. Mit diesen solltest Du dann weiterarbeiten können ...

                        Ok. Das hilft mir sicher weiter. Das heißt also, dass ich mir erstmal einen geeigneteren Trenner suche und dass dieser dann mitsamt dem Inhalt in einem Javascript-Objekt namens "data" landet?

                        Grüße, Hans

                        1. Mahlzeit Hans A. Plast,

                          Schauen wir uns das doch mal etwas genauer an ... einerseits fällt mir auf, dass Du Dich darauf verlässt, dass in den übergebenen Parametern auch tatsächlich Zahlen enthalten sind:

                          Das mache ich nur, weil es ein reines Testscript ist. Später im Echtbetrieb mache ich das natürlich nicht mehr.

                          Zum Thema "erstmal ein Test", "im Echtbetrieb natürlich nicht mehr", "wird noch geändert" usw. lass Dir von den hiesigen Teilnehmern (ich schätze, Du kannst fragen, wen Du willst) gesagt sein: wenn's einmal läuft, fasst das Skript keiner mehr an. Mach's lieber gleich richtig und vernünftig - sonst wird's nie etwas.

                          Weil es meine erste Ajax-Anwendung ist? XML? Ist das mit den /> am Ende usw.?

                          Nein.

                          "<BR>" (Großschreibung von Elementen ist bei HTML zwar OK, Du solltest Dir das aber eigentlich grundsätzlich *nicht* angewöhnen)

                          Käse, das habe ich vor Jahren mal genau andersherum gelesen und da mein Editor das autom. vorgibt, sind inzwischen alle Scripte bei mir so.

                          Kein Käse. Zeige mir bitte die Stelle, sage wieviele Jahre das her ist, begründe warum Du Dich in einem derart schnelllebigen Bereich wie der Webentwicklung nach Jahren immer noch an dermaßen veraltete Pseudowahrheiten klammerst und nenne Deinen Editor - das scheint ja ein extrem krankes Teil zu sein.

                          Ok. Das hilft mir sicher weiter. Das heißt also, dass ich mir erstmal einen geeigneteren Trenner suche und dass dieser dann mitsamt dem Inhalt in einem Javascript-Objekt namens "data" landet?

                          Mehr oder weniger. Jetzt steht dort ja z.B. "4<BR>32" drin ... mit Bordmitteln solltest Du da weiterkommen.

                          MfG,
                          EKKi

                          --
                          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                          1. Zum Thema "erstmal ein Test", "im Echtbetrieb natürlich nicht mehr", "wird noch geändert" usw. lass Dir von den hiesigen Teilnehmern (ich schätze, Du kannst fragen, wen Du willst) gesagt sein: wenn's einmal läuft, fasst das Skript keiner mehr an. Mach's lieber gleich richtig und vernünftig - sonst wird's nie etwas.

                            Doch, doch. Das mache ich tatsächlich immer so. Liegt aber auch daran, dass mein Ziel etwas ganz anderes ist, als diese Zahlenspielerei hier.
                            Aber die habe ich dringend gebraucht, um das System zu verstehen.
                            Erst jetzt gehe ich daran, das eigentliche Ziel zu verfolgen.

                            Kein Käse. Zeige mir bitte die Stelle, sage wieviele Jahre das her ist, begründe warum Du Dich in einem derart schnelllebigen Bereich wie der Webentwicklung nach Jahren immer noch an dermaßen veraltete Pseudowahrheiten klammerst und nenne Deinen Editor - das scheint ja ein extrem krankes Teil zu sein.

                            Moment. Warum muss/sollte ich sowas begründen? Versteh ich jetzt nicht ganz.
                            Zudem ist es nunmal so, dass man, auch in den schnelllebigsten Bereichen, nicht zwingend hinterfragt, was man ganz selbstverständlich als richtig vorraussetzt. Der Editor ist übrigens EditPlus3 und der macht das wirklich so.

                            Mehr oder weniger. Jetzt steht dort ja z.B. "4<BR>32" drin ... mit Bordmitteln solltest Du da weiterkommen.

                            Schon erledigt und bei Dir bedankt. Mache ich aber auch gerne nochmal. Danke Dir! :-)

                            Hans

                            1. Mahlzeit Hans A. Plast,

                              Kein Käse. Zeige mir bitte die Stelle, sage wieviele Jahre das her ist, begründe warum Du Dich in einem derart schnelllebigen Bereich wie der Webentwicklung nach Jahren immer noch an dermaßen veraltete Pseudowahrheiten klammerst und nenne Deinen Editor - das scheint ja ein extrem krankes Teil zu sein.

                              Moment. Warum muss/sollte ich sowas begründen? Versteh ich jetzt nicht ganz.

                              Weil diese Behauptung Blödsinn ist - ganz einfach. In XHTML *musst* Du alle Elemente und Attribute klein schreiben. In HTML ist es egal. Im Sinne einer besseren Lesbarkeit und einer ggf. einfacheren Migration zu XHTML ist es eigentlich - schon seit Jahren! - eher ratsam, genauso wie in XHTML alle Elemente und Attribute klein zu schreiben ... komplett groß geschriebenen HTML-Code kennt man eigentlich nur aus den Anfangsjahren des Webs, als der Netscape Composer das Maß der Dinge war, alle Seiten <center>- und <blink>-Tags enthielten, Standardhintergrundbild ein schwarzer Sternenhimmel war und jede beschissene "Homepage" den Besucher mit nervigem MIDI-Gedudel auf den Sack fiel.

                              Deshalb meine Frage, *wo* und *wann* Du das gelesen hast.

                              Der Editor ist übrigens EditPlus3 und der macht das wirklich so.

                              Das kann man dem sicher abgewöhnen (und sei es durch ein vernünftiges Syntax-Highlighting-Plugin). Sollte man auch.

                              MfG,
                              EKKi

                              --
                              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                              1. ... komplett groß geschriebenen HTML-Code kennt man eigentlich nur aus den Anfangsjahren des Webs, als der Netscape Composer das Maß der Dinge war, alle Seiten <center>- und <blink>-Tags enthielten, Standardhintergrundbild ein schwarzer Sternenhimmel war und jede beschissene "Homepage" den Besucher mit nervigem MIDI-Gedudel auf den Sack fiel.

                                Die Pro7-Profis machen heute noch solche Webseiten!  *g* (der musste jetzt sein ;-)

                                Deshalb meine Frage, *wo* und *wann* Du das gelesen hast.

                                Und warum glaubst Du mir es nicht einfach? Ich dachte auch, das Gelesene und mein Editor stimmten durchaus sehr stringent in dieser Frage überein.

                                Das kann man dem sicher abgewöhnen (und sei es durch ein vernünftiges Syntax-Highlighting-Plugin). Sollte man auch.

                                Werde ich mir mal anschauen.

                                Mfg, Hans

                                MfG,
                                EKKi

                                1. Mahlzeit Hans A. Plast,

                                  Deshalb meine Frage, *wo* und *wann* Du das gelesen hast.

                                  Und warum glaubst Du mir es nicht einfach?

                                  Ich glaube Dir, *dass* Du es gelesen hast. Mich interessiert nur, *wann* das war und *wo* das stand. Keine Quelle ist absolut und sollte unreflektiert übernommen bzw. akzeptiert werden. Wenn man den Kontext kennt, ist es vielleicht einfacher, zu verstehen, *wer* das *wann* und *wo* behauptet bzw. geschrieben hat. Aus heutiger Sicht jedoch ist es eher nicht sinnvoll, HTML-Elemente und -Attribute durchgehend groß zu schreiben.

                                  Ich dachte auch, das Gelesene und mein Editor stimmten durchaus sehr stringent in dieser Frage überein.

                                  Also die Versionen von EditPlus, die ich kenne, sind durchaus in der Lage, auch ein vernünftiges Syntax-Highlighting für HTML vorzunehmen.

                                  MfG,
                                  EKKi

                                  --
                                  sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                        2. Hi EKKI,

                          vielen Danke für Deine Geduld und Hilfe.

                          Ich habe genau _das_ jetzt geschafft, was ich zu Beginn als Ergebniss schaffen wollte.

                          Der Weg meiner Anwendung scheint also folgender zu sein:

                          Aus dem html-teil gehen per Ajax die Inputfelder zum php-backend. Hier werden sie verarbeitet und kommen über die echo-Anweisung als Javascript-Objekt-String wieder zurück?

                          Jedenfalls kann ich dort dann über das Splitten desselbigen in ein Array auf die einzelnen Elemente zugreifen und sie in die von mir ausgewählten Input-Felder zurückschreiben?

                          Jedenfalls funktioniert es:

                            
                          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
                          "http://www.w3.org/TR/html4/strict.dtd">  
                          <html>  
                          <head>  
                          	<script type="text/javascript" src="jquery.js"></script>  
                          	<script type="text/javascript">  
                          		$(document).ready(function() {  
                          			$("#test_form").submit(function() {  
                          				var u5val = $("#z5").val();  
                          				var u10val = $("#z10").val();  
                          				$.post("backend.php", {  
                          				test5: u5val,  
                          				test10: u10val }, function(data) {  
                          				var einzeldata = data.split("||");  
                          					$("#z5").val(einzeldata[0]);  
                          					$("#z10").val(einzeldata[1]);  
                          					$("#z20").val(einzeldata[2]);  
                          				});  
                          				return false;  
                          			});  
                          		});  
                          	</script>  
                          	</head>  
                          <body>  
                          	<form id="test_form" method="post">  
                          		<p>Test5: <input type="text" id="z5" /></p>  
                          		<p>Test10: <input type="text" id="z10" /></p>  
                          		<p>Summe: <input type="text" id="z20" /></p>  
                          		<p><input type="submit" value="abschicken" /></p>  
                          	</form>  
                          </body>  
                          </html>  
                            
                          -----------------------------------------  
                            
                          backend:  
                          <?php  
                            
                          $erg5=$_POST['test5']*2;  
                          $erg10=$_POST['test10']*2;  
                          $summe=$erg5+$erg10;  
                            
                            
                          echo ($erg5."||".$erg10."||".$summe);  
                            
                            
                            
                          ?>  
                            
                            
                          
                          
                          1. Mahlzeit Hans A. Plast,

                            vielen Danke für Deine Geduld und Hilfe.

                            Kein Problem.

                            Ich habe genau _das_ jetzt geschafft, was ich zu Beginn als Ergebniss schaffen wollte.

                            Das freut mich. Insbesondere freut mich auch Dein Feedback.

                            Aus dem html-teil gehen per Ajax die Inputfelder zum php-backend.

                            Jein - nicht die Inputfelder, nur deren Inhalt.

                            Alles andere hast Du ziemlich genau treffend beschrieben.

                            MfG,
                            EKKi

                            --
                            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                2. Ich weiß aber nicht, wie ich sie ansprechen kann. Ich habe zwar eine sehr gute Seite zu genau diesem Thema gefunden

                  Sorry, falscher Link.

                  Hier ist der Richtige.

                  1. Sorry, falscher Link.

                    Hier ist der Richtige.

                    Und nein, ich hab nicht gesoffen ;-)))

                    Hab nur viel gelesen in der letzten zeit.

                    Unter anderem diesen, diesmal wirklich korrekten Link

        2. Hi!

          Die Idee mit dem hidden INPUT ist aber auch alles andere als verkehrt - denn wenn der Nutzer das Formular per Entertaste abschickt, dann bekommst du keinen Wert vom Submit-Button, und da wäre der hidden-value die simplere Entscheidungshilfe serverseitig.

          Der Browser, von dem du schreibst, nennt sich IE (und der arbeitet meiner Meinung nach in dem Punkt normkonform). Andere Browser denken, auch bei nicht gedrücktem Submit-Button dessen Name-Value-Pärchen mitsenden zu müssen. Dabei nehmen sie sich einfach den erstbesten Submit-Button den sie finden.

          Lo!

          1. Der Browser, von dem du schreibst, nennt sich IE (und der arbeitet meiner Meinung nach in dem Punkt normkonform).

            Was nutzt es, ob konform oder nicht?
            Die engste Stelle in einem Schlauch bestimmt schließlich den Durchfluss.

            Grüße, Hans

  2. Hi,

    in einer Reihe von gleichwertigen Inputs eines Formulares will ich mit dem Ändern eines der Inputs einen Request absenden sowie verhindern, dass der User andere Inputs bedient.

    ich würde hier wie folgt vorgehen: onfocus input schaltest Du eine Tastaturüberwachung ein und registrierst alle Eingaben. Ab der gewünschten "Mindestanzahl" startest Du Deinen Ajax-Request jeweils bei Eingabe, gleichzeitig legst Du einen Overlay über die zu deaktivierenden Inputs (ggf mit einer animierten Warte-Grafik"). Bei Ajax-Response entfernst Du den Overlay wieder.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hi,

      in einer Reihe von gleichwertigen Inputs eines Formulares will ich mit dem Ändern eines der Inputs einen Request absenden sowie verhindern, dass der User andere Inputs bedient.
      ich würde hier wie folgt vorgehen: onfocus input schaltest Du eine Tastaturüberwachung ein und registrierst alle Eingaben. Ab der gewünschten "Mindestanzahl" startest Du Deinen Ajax-Request jeweils bei Eingabe, gleichzeitig legst Du einen Overlay über die zu deaktivierenden Inputs (ggf mit einer animierten Warte-Grafik"). Bei Ajax-Response entfernst Du den Overlay wieder.

      Gruesse, Joachim

      Hi Joachim,

      sorry, dass ich Dich jetzt hernehme, weil das Thema im Forum grad aktuell war. Aber das ist eine Paradeantwort, bei der ich fast nicht ein Wort verstehe :-(

      Ich mach es, weil Du in dieser Diskussion nicht dabei warst und wir uns überhaupt nicht kennen. Somit kann niemand sagen, meinen, denken, ich hätte etwas gegen Dich.

      Es ist nur einfach so, dass wir uns nicht auf selbem Fachniveau treffen, so gut und richtig (ich kann es ja nur vermiuten) Deine Antwort auch war.

      Nix für ungut, ist  nicht böse gemeint

      Hans

      1. Hi!

        sorry, dass ich Dich jetzt hernehme, weil das Thema im Forum grad aktuell war. Aber das ist eine Paradeantwort, bei der ich fast nicht ein Wort verstehe :-(

        Wenn du gestattest, lassen wir mal die Ereignisse der jüngsten Tage im Hinterkopf und versuchen mal hier eine auch für den Antwortenden hilfreiche Reaktion zu erstellen.

        Dass du ihm sagst, nichts verstanden zu haben ist schon mal gut. Oftmals findet man solche direkten Antworten nicht und merkt nur mittelbar aus der Art der Reaktion oder dem weiteren Threadverlauf, dass die Antwort vermutlich nicht verstanden wurde. Doch nun musst du konkret werden und zeigen, dass du dich mit der Antwort auseinandergesetzt hast. Das signalisiert dem Antwortenden deinen grundsätzlichen Willen an einer Lösung mitzuarbeiten. Ein pauschales "nicht verstanden" ist ebenso wenig nützlich wie ein "funktioniert nicht" als Fehlerbeschreibungsversuch.

        Da auch ich nicht verstehe, was er genau mit seiner Antwort meint, wollte ich grad mal versuchen eine konkrete Nachfrage zu formulieren. Dummerweise hab ich nach dem dritten Lesen doch noch ungefähr herausbekommen, was er gemeint haben könnte.

        onfocus input schaltest Du eine Tastaturüberwachung ein und registrierst alle Eingaben.

        "onfocus input" ist schon mal sprachlich nicht wirklich verständlich. Aber was kann man vielleicht daraus entnehmen? "onfocus" ist ein Eventhandler, das müsste auch ein in Javascript nicht so Bewanderter wissen. "input" soll das HTML-Element input sein. Man könnte vielleicht so fragen:

        Meinst du mit damit ein input-Element mit dem Event-Handler onfocus? Aber wie erstellt man eine Tastaturüberwachung?

        Der Rest mit dem Registrieren der Eingaben wird sich vermutlich klären, wenn "Tastaturüberwachung" näher erläutert wurde.

        Ab der gewünschten "Mindestanzahl" startest Du Deinen Ajax-Request jeweils bei Eingabe, gleichzeitig legst Du einen Overlay über die zu deaktivierenden Inputs (ggf mit einer animierten Warte-Grafik"). Bei Ajax-Response entfernst Du den Overlay wieder.

        Der erste Teil von diesem Teil der Antwort bezieht sich offensichtlich auf deine Aufgabenstellung. Das dürfte dir, so nehme ich an, soweit klar sein, denn das hast du schon implementiert, wenn ich das im anderen Zweig dieses Threads richtig gedeutet habe. Das "Overlay" könnte wieder Verständlichkeitsprobleme bereiten, sofern du nicht durch den Zusatz "animierte Warte-Grafik" darauf schließen kannst, dass er damit eine Abdeckung oder ein Verstecken der anderen Elemente gemeint hat. Aber da kannst du auch versuchen, eine konkrete Gegenfrage zu bilden.

        Lo!

        1. Da auch ich nicht verstehe, was er genau mit seiner Antwort meint, wollte ich grad mal versuchen eine konkrete Nachfrage zu formulieren. Dummerweise hab ich nach dem dritten Lesen doch noch ungefähr herausbekommen, was er gemeint haben könnte.

          Hi dedlfix,

          ja. Deine Nachfragen sind wirklich gut. Aber die Antwort hat mich insgesamt so überfordert, dass ich auf diese Fragen nicht gekommen wäre. Einfach "too much" und gleichzeitig war dann der andere Zweig der Antwortenden, der viel vielversprechender und verständlicher war.

          Mit Deiner Interpretation der Antwort und dem richtigen Herausarbeiten der unverständlichen Knackpunkte auf meiner Seite würden wir sicherlich auch diesen Antwortzweig noch zum Ziel führen.

          Alles in allem ist dem Fragenden aber selten so klar wie Dir, wo die zu klärenden Punkte bei Antworten dieser Art liegen. So eine Antwort erschlägt mich und ich gebe zu, sie demotiviert mich, mich mit ihr angemessen zu beschäftigen. Und selbst wenn, hätte ich nicht, wie Du, diese Punkte herausarbeiten können. Mit Deiner Hilfe und meinem Wissen aus dem 2. Zweig der Antworten (also zwei Wissende, in welche Richtung die Lösung läuft) können wir gemeinsam aus der Frage die notwendigen Rückfragen ableiten, die mir geholfen hätten.

          Das wäre mir alleine nicht gelungen und wenn im Thread Optionen bestehen, wird jeder Fragende sie wie einen Strohhalm ergreifen ;-)

          Ich hoffe, das verdeutlicht das Problem ein bisschen.

          Grüße, Hans

          onfocus input schaltest Du eine Tastaturüberwachung ein und registrierst alle Eingaben.

          "onfocus input" ist schon mal sprachlich nicht wirklich verständlich. Aber was kann man vielleicht daraus entnehmen? "onfocus" ist ein Eventhandler, das müsste auch ein in Javascript nicht so Bewanderter wissen. "input" soll das HTML-Element input sein. Man könnte vielleicht so fragen:

          Meinst du mit damit ein input-Element mit dem Event-Handler onfocus? Aber wie erstellt man eine Tastaturüberwachung?

          Der Rest mit dem Registrieren der Eingaben wird sich vermutlich klären, wenn "Tastaturüberwachung" näher erläutert wurde.

          Ab der gewünschten "Mindestanzahl" startest Du Deinen Ajax-Request jeweils bei Eingabe, gleichzeitig legst Du einen Overlay über die zu deaktivierenden Inputs (ggf mit einer animierten Warte-Grafik"). Bei Ajax-Response entfernst Du den Overlay wieder.

          Der erste Teil von diesem Teil der Antwort bezieht sich offensichtlich auf deine Aufgabenstellung. Das dürfte dir, so nehme ich an, soweit klar sein, denn das hast du schon implementiert, wenn ich das im anderen Zweig dieses Threads richtig gedeutet habe. Das "Overlay" könnte wieder Verständlichkeitsprobleme bereiten, sofern du nicht durch den Zusatz "animierte Warte-Grafik" darauf schließen kannst, dass er damit eine Abdeckung oder ein Verstecken der anderen Elemente gemeint hat. Aber da kannst du auch versuchen, eine konkrete Gegenfrage zu bilden.

          Lo!

  3. Tachchen Hans,

    der Thread hat tatsächlich für die letzten Jahre einen typischen verlauf genommen...

    in einer Reihe von gleichwertigen Inputs eines Formulares will ich mit dem Ändern eines der Inputs einen Request absenden sowie verhindern, dass der User andere Inputs bedient.

    hierbei kannst Du http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange@title=onchange und die Eigenschaft http://de.selfhtml.org/javascript/objekte/elements.htm#disabled@title=disabled nutzen; ansonsten greifst Du auf die entsprechenden Elemente, die vom Nutzer nicht bedient werden sollen, kannst Du wahlweise durch http://de.selfhtml.org/javascript/objekte/forms.htm@title=document.forms oder document.getElementsById() zu:

      
    function testrequest(){  
      var e=document.getElementsById('dieID')  
      e.disabled=true;  
      // Dein Ajax-Request  
      e.disabled=false;  
    }
    
    <input type="text" name="eingabe" onchange="testrequest()">  
    <input type="text" name="ausgabe" id="dieID">
    

    Heißt das im Umkehrschluss, dass ich, wenn ich serverseitig verarbeiten will, nur über onchange-event und entsprechendem Ajax gehen muss?

    Ja.

    Zu Deinem Problem unter t=193372&m=1291589:
    Den Einsatz von jquery (55.9 KB groß) für die Buchstäbliche Kanone auf den Spatzen. Ein XMLHttpRequest ist völlig ausreichend und noch halbwegs nachvollziehbar. Für weitergehende Kompatibilität älterer Browser sähe das dann etwa so aus:

    var xmlHttp = null;  
    try {  
        // Mozilla, Opera, Safari sowie Internet Explorer (ab v7)  
        xmlHttp = new XMLHttpRequest();  
    } catch(e) {  
        try {  
            // MS Internet Explorer (ab v6)  
            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");  
        } catch(e) {  
            try {  
                // MS Internet Explorer (ab v5)  
                xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");  
            } catch(e) {  
                xmlHttp  = null;  
            }  
        }  
    }  
    if (xmlHttp) {  
        xmlHttp.open('GET', 'beispiel.xml', false);  
        xmlHttp.send(null);  
        alert(xmlHttp.responseText);  
    }
    

    Wo hast Du weitergehende Probleme?

    Gruß aus Berlin!
    eddi

    1. Mahlzeit Edgar Ehritt,

      Den Einsatz von jquery (55.9 KB groß) für die Buchstäbliche Kanone auf den Spatzen.

      Da gebe ich Dir Recht.

      Ein XMLHttpRequest ist völlig ausreichend und noch halbwegs nachvollziehbar.

      Da auch - wenn man es denn richtig macht.

      Für weitergehende Kompatibilität älterer Browser sähe das dann etwa so aus:

      Der hüpfende Komma hierbei ist das "etwa" ...

      xmlHttp.open('GET', 'beispiel.xml', false);
          xmlHttp.send(null);
          alert(xmlHttp.responseText);

      ... denn das ist *so* sinnfrei. "xmlHttp.responseText" ist direkt nach dem Abschicken des Requests sowas von leer. Und da das Objekt keinen Handler für "onreadystatechange" besitzt, wird das aufrufende Skript nie irgendwas zurückerhalten.

      Besser (und auf den konkreten Fall angepasst):

      xmlHttp.onreadystatechange = function() {  
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {  
          var ergebnis = xmlHttp.responseText.split('<BR>');  
          document.getElementById('z5').value = ergebnis[0];  
          document.getElementById('z10').value = ergebnis[1];  
        }  
      }  
      xmlHttp.open('GET', 'beispiel.xml', false);  
      xmlHttp.send(null);  
      
      

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      1. Mahlzeit :)

        Der hüpfende Komma hierbei ist das "etwa" ...

        xmlHttp.open('GET', 'beispiel.xml', false);
            xmlHttp.send(null);
            alert(xmlHttp.responseText);

        ... denn das ist *so* sinnfrei. "xmlHttp.responseText" ist direkt nach dem Abschicken des Requests sowas von leer. Und da das Objekt keinen Handler für "onreadystatechange" besitzt, wird das aufrufende Skript nie irgendwas zurückerhalten.

        xmlHttp.open('GET', 'beispiel.xml', false);

        da steht false als drittes Argument - nicht true. Die standardisierte Schnittstellenbeschreibung unter http://www.w3.org/TR/XMLHttpRequest/#asynchronous-flag, beschreibt diesen als optionalen Schalten _ob_ der Request überhaupt asynchron stattfinden soll, alsdass er also nicht blockierend (true) oder blockierend false wirken soll.

        Gruß aus Berlin!
        eddi

        1. Mahlzeit Edgar Ehritt,

          da steht false als drittes Argument - nicht true.

          Sorry, das habe ich doch glatt übersehen.

          Wobei die Frage noch wäre, ob Hans A. Plast wirklich einen synchronen Request absetzen will ...

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          1. Re:

            Wobei die Frage noch wäre, ob Hans A. Plast wirklich einen synchronen Request absetzen will ...

            Zumindest hat er diesmal aber Links bekommen, die im hoffentlich Einstieg in die Materie statt Suche bescheren werden, um sich zu orientieren und zu entscheiden.

            Gruß aus Berlin!
            eddi

    2. Tachchen Hans,

      Moin Edgar,

      der Thread hat tatsächlich für die letzten Jahre einen typischen verlauf genommen...

      Aber alles in allem ist es ein guter für mich. Ich habe viel gelernt und ein sehr wichtiges Teilziel realisieren können. Und ich glaube, Dein Post hilft mir nochmal in einem anderen Teilaspekt weiter. Aber dazu später mehr. Dazu muss ich Deine Hinweise einbauen.

      Den Einsatz von jquery (55.9 KB groß) für die Buchstäbliche Kanone auf den Spatzen.

      Sicher. Aber ich setze jquery schon länger im Projekt ein, ich hab es nur bisher immer nur für eine ganz bestimmte Sache gebraucht. Wenn ich also das Teil eh mitlade, dacht ich mir, machts Sinn, hierüber zu gehen.

      Wo hast Du weitergehende Probleme?

      Muss jetzt erstmal testen. Dann melde ich mich wieder, ok?

      Erstmal danke, Hans

      1. Muss jetzt erstmal testen. Dann melde ich mich wieder, ok?

        Erstmal danke, Hans

        So, da bin ich dann wieder.

        Ich habe nun auch versucht, möglichst alles unter Zuhilfenahme von jquery zu lösen. Klappt auch weitestgehend sehr gut.

        Ein kleines Problemachen bleibt noch.

        Nach dem Einsetzen der errechneten Werte soll das Script _alle_ Inputfelder wieder enablen. Macht es aber noch nicht. Bisher muss ich dann erst nochmal in das letzte geänderte Feld zurückklicken, erst danach sind alle anderen Felder auch wieder frei.

        Noch einmal hier der Code, der entscheidend dafür ist:

          
        	<script type="text/javascript">  
        		$(document).ready(function() {  
        			$("#test_form input[name=eingabe]").change(function() {  
        			    var id = this.id;  
        				var wert = jQuery(this).val();  
        				$("#test_form input[name=eingabe]").attr('disabled', 'disabled');  
        				$.post("backend.php", {  
        				id1: id,  
        				wert1: wert }, function(data) {  
        				var einzeldata = data.split("||");  
        					$("#z5").val(einzeldata[0]);  
        					$("#z10").val(einzeldata[1]);  
        					$("#z20").val(einzeldata[2]);  
        				$("#test_form input[name=eingabe]").removeAttr('disabled');  
        				});  
        				return false;  
        			});  
        		});  
        	</script>  
        
        

        Wo ist hier mein Denkfehler?

        Grüße und danke, Hans

        1. Mahlzeit Hans A. Plast,

            		$("#test\_form input[name=eingabe]").attr('disabled', 'disabled');  
          

          [...]

            		$("#test\_form input[name=eingabe]").removeAttr('disabled');  
          

          Ein Attribut komplett zu entfernen ist meist keine gute Idee.

          Wo ist hier mein Denkfehler?

          Dein Denkfehler ist der, dass Du mittels jQuery irgendwie nachzudengeln versuchst, was Javascript mit Bordmitteln schon kennt - nämlich das Attribut "http://de.selfhtml.org/javascript/objekte/elements.htm#disabled@title=disabled" und seine recht einfachen Werte "false" und "true".

          Wenn Du mit Javascript programmieren willst, solltest Du Dich teilweise vom HTML-Denken lösen (können). Ein Objekt hat (immer) bestimmte Eigenschaften - deren Werte Du teilweise ändern bzw. beeinflussen kannst. Du solltest aber - zumindest bei Objekten, die HTML-Elemente repräsentieren - (fast) *niemals* daran denken, die Eigenschaften der Objekte (= Attribute in HTML) selbst zu entfernen, neue dazuzudichten o.ä. ...

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          1. Hi EKKI,

            Ein Attribut komplett zu entfernen ist meist keine gute Idee.

            Ich habs gegoogelt, wie man das mit jQuery macht.

            Wo ist hier mein Denkfehler?

            Dein Denkfehler ist der, dass Du mittels jQuery irgendwie nachzudengeln versuchst, was Javascript mit Bordmitteln schon kennt - nämlich das Attribut "http://de.selfhtml.org/javascript/objekte/elements.htm#disabled@title=disabled" und seine recht einfachen Werte "false" und "true".

            Ich wußte nur niocht, ob das ne gute Idee ist, Beides zu mischen. Ok, ich werde mal versuchen, reines javascript hierfür zu benutzen.

            Wenn Du mit Javascript programmieren willst, solltest Du Dich teilweise vom HTML-Denken lösen (können). Ein Objekt hat (immer) bestimmte Eigenschaften - deren Werte Du teilweise ändern bzw. beeinflussen kannst. Du solltest aber - zumindest bei Objekten, die HTML-Elemente repräsentieren - (fast) *niemals* daran denken, die Eigenschaften der Objekte (= Attribute in HTML) selbst zu entfernen, neue dazuzudichten o.ä. ...

            Da ist wieder einer. Ein was?
            Einer dieser Absätze, deren Worte ich wohl lese und die sehr verständlich klingen. Aber es ist, wie in einer anderen Sprache geschrieben. Ich verstehe den Inhalt des Absatzes nicht.

            Hans

            1. Ein Attribut komplett zu entfernen ist meist keine gute Idee.

              Ich habs gegoogelt, wie man das mit jQuery macht.

              ...ein besseres Argument gegen die "ich kotze dem Fragende eine unverständliche Antwort vor die Füße und lasse ihn alles über Suchmaschinen nachvollziehen"-Mentalität habe ich tatsächlich selten gelesen...

              Leider kenne ich mich mit dem Jquery-Monster kein bisschen aus. Viel Glück!

              Gruß aus Berlin!
              eddi

              1. Ein Attribut komplett zu entfernen ist meist keine gute Idee.

                Ich habs gegoogelt, wie man das mit jQuery macht.

                ...ein besseres Argument gegen die "ich kotze dem Fragende eine unverständliche Antwort vor die Füße und lasse ihn alles über Suchmaschinen nachvollziehen"-Mentalität habe ich tatsächlich selten gelesen...

                Leider kenne ich mich mit dem Jquery-Monster kein bisschen aus. Viel Glück!

                Und ich kapier grad gar nix mehr :-(

                Aber so ist das und genau so fühlt sich sicher so mancher Bemühte, so mancher Fragende hier.

                Einerseits dankbar, weil ihm geholfen wurde und andererseits fast schon ein wenig gedemütigt, weil ihm mal wieder unter die Nase gerieben wurde, welch ein Noob er doch ist.

                Und das sind dann ggf. genau die Momente, wo er den Nick wechselt, weil er nicht in  der nächsten Frage, die er hat, auf sein Image als kleiner, dummer Noob zurückgreifen will.

                In diesem Sinne, Hans

                1. Hi!

                  Aber so ist das und genau so fühlt sich sicher so mancher Bemühte, so mancher Fragende hier.

                  Einerseits dankbar, weil ihm geholfen wurde und andererseits fast schon ein wenig gedemütigt, weil ihm mal wieder unter die Nase gerieben wurde, welch ein Noob er doch ist.

                  Und das sind dann ggf. genau die Momente, wo er den Nick wechselt, weil er nicht in  der nächsten Frage, die er hat, auf sein Image als kleiner, dummer Noob zurückgreifen will.

                  Ich denke, das kann man auch anders sehen. Begreife dein Nichtwissen nicht als Makel sondern als Chance etwas hinzuzulernen. Sich einzugestehen, dass man was nicht weiß, sollte nicht zu Resignation sondern idealerweise zu einem Ansporn führen. Die meisten Helfenden wollen dich nicht alt aussehen lassen, aber ein Zurückziehen deinerseits fördert nicht gerade ihre Motivation, sich auf dich einzulassen. Etwas zu erschaffen ist ein aufwendiger Prozess, manch eine Lernkurve steil, aber wenn du oben auf dem Gipfel stehst ist alle Mühsal Vergangenheit und die Aussicht wundervoll. Na gut, manchmal steht man auch im Nebel, doch die Erfahrung beim Aufstieg nützt dir anderentags schneller nach oben zu kommen, so dass du vom schönen Wetter noch profitieren kannst.

                  Und um bei der Berg-Analogie zu bleiben: Allein auf einen Berg zu steigen ist machbar aber nicht jedem gegeben. Bergführer helfen mit ihrer Erfahrung. Sie sind aber in erster Linie Menschen mit ihren eigenen Defiziten. Mit ihnen zu kommunizieren mag nicht auf Anhieb einfach sein, doch dazu gehören immer zwei, die beide aufeinander zugehen müssen, wenn sie gemeinsam erfolgreich sein wollen (der eine beim Erlernen, der andere beim Weitergben seines Wissens).

                  Hab ich dir gerade das Noob-Gefühl in dir verstärkt? Wenn ja, tut mir leid, das war nicht meine Absicht. Versuche gestärkt aus der Krise hervorzugehen, getreu dem Motto: scheitern, wieder scheitern, besser scheitern! :-)

                  Lo!

                  1. Hab ich dir gerade das Noob-Gefühl in dir verstärkt? Wenn ja, tut mir leid, das war nicht meine Absicht. Versuche gestärkt aus der Krise hervorzugehen, getreu dem Motto: scheitern, wieder scheitern, besser scheitern! :-)

                    Nein, Quatsch. Hast Du natürlich nicht.
                    Und ich habe auch nicht zwingend von mir geschrieben, auch wenn mir klar war, dass man das auf mich beziehen kann, bzw. wenn irgendwann irgendwer diesen Thread aus dem Archiv kramt (d.h. ohne Wissen um den 2. Thread, auf den ich mich hier beziehe) es auf mich beziehen muss.

                    Für mich war der Thread alles in allem aber ein sehr guter.

                    Grüße, Hans

            2. Mahlzeit Hans A. Plast,

              Einer dieser Absätze, deren Worte ich wohl lese und die sehr verständlich klingen. Aber es ist, wie in einer anderen Sprache geschrieben. Ich verstehe den Inhalt des Absatzes nicht.

              Tut mir leid - aber ich weiß nicht, wie ich das, was ich ausdrücken wollte, anders formulieren kann, so dass es immer noch korrekt und - für diejenigen, die ein gewisses Mindestmaß an Grundkenntnissen haben - verständlich ist.

              Ich vermute, dass Dir noch eine ganze Menge Grundwissen in bezug auf Programmierung im Allgemeinen und Webtechnologien (d.h. HTML, CSS, Javascript) im Besonderen fehlt. Bis zu einem gewissen Grad ist absolutes Minimalwissen tatsächlich ausreichend - auch für eine fachliche Diskussion. Spätestens wenn es dann aber um die Feinheiten von Objekt-orientierter Programmierung geht, solltest Du "ein gewisses Engagement des Lernenden" zeigen und Dich über die für das Verständnis fehlenden Wissensgebiete selbstständig informieren.

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              1. Tut mir leid - aber ich weiß nicht, wie ich das, was ich ausdrücken wollte, anders formulieren kann, so dass es immer noch korrekt und - für diejenigen, die ein gewisses Mindestmaß an Grundkenntnissen haben - verständlich ist.

                Spätestens wenn es dann aber um die Feinheiten von Objekt-orientierter Programmierung geht...

                Die Feinheiten objektorientierter Programmierung sind meilenweit von Grundkenntnissen entfernt.

                Das weißt Du, das weiß ich, das weiß jeder!

                Ich kann (adhoc) nicht auf Deinen Stand, damit wir adäquat diesbzgl. kommunizieren können, Du willst nicht.
                Und umgekehrt wirst Du womöglich dasselbe sagen?!?

                Soweit, sogut. Du hast mir sehr wesentlich weitergeholfen und die kommunikation mit Dir war sehr angenehm.

                Aber auch in unserer Kommunikation war deutlich, was wir zuletzt in dem anderem Thread besprochen haben. Manchmal sind die Diskrepanzen einfach nicht innerhalb eines Threads überwindbar. Egal, ob Können oder Wollen dahintersteht.

                In diesem Sinne, Hans

            3. Hi,

              Wenn Du mit Javascript programmieren willst, solltest Du Dich teilweise vom HTML-Denken lösen (können). Ein Objekt hat (immer) bestimmte Eigenschaften - deren Werte Du teilweise ändern bzw. beeinflussen kannst. Du solltest aber - zumindest bei Objekten, die HTML-Elemente repräsentieren - (fast) *niemals* daran denken, die Eigenschaften der Objekte (= Attribute in HTML) selbst zu entfernen, neue dazuzudichten o.ä. ...

              Da ist wieder einer. Ein was?
              Einer dieser Absätze, deren Worte ich wohl lese und die sehr verständlich klingen. Aber es ist, wie in einer anderen Sprache geschrieben. Ich verstehe den Inhalt des Absatzes nicht.

              Trotzdem solltest du wissen, was wir von dir, *wenn* du etwas nicht verstehst, eine etwas detailiertere Beschreibung erwarten, *wo* *genau* denn nun dein Verständnisproblem liegt.
              Wenn du uns mitteilst, was du daran nicht verstehst, bzw. wo dein Verständnisproblem in etwa liegt - dann wissen die Mitleser auch genauer, welcher Punkt noch mal einer Umformulierung bedarf, um verständlicher zu sein - eine Reaktion, die nur ein etwas prosaischeres "Hä, Bahnhof?" ist, leistet das nicht.

              Ich versuche es noch mal anders zu formulieren:

              Generell sind setAttribute/removeAttribute bzw. auch createAttribute/setAttributeNode/removeAttributeNode vom OO-Ansatz her der (/ein) korrekter Weg, um Objekten neue Attribute zu verpassen bzw. Attribute oder Attributwerte zu entfernen/löschen.

              Problem ist im vorliegenden Umfeld aber, dass wir nicht alle Objekte selbst erstellen und mit Attributen ausstatten - sondern das beim Arbeiten auf dem DOM die Objekte "schon da" sind, nämlich die HTML-Element-Objekte, die die JavaScript-Repräsentation unserer HTML-Elemente darstellen.
              Und die haben schon "von Haus aus" bestimmte Attribute - bei Formularelementen bspw. das disabled, oder auch name, type und value.
              Und manche Browser reagieren verschnupft, wenn man solche Attribute per setAttribute o.ä. Erstellen und Setzen will - insb. der IE ist hier ein Kandidat, der dabei immer mal wieder Mucken macht.
              Und deshalb ist es in der Praxis günstiger, bei "bekannten" [1] Attributen immer den simplen Weg
              elementReferenz.attributname = wert;
              zu gehen, um den Wert eines solchen Attributes zu setzen.

              Der andere Weg ist zwar, wie gesagt, in der Theorie ebenfalls korrekt (ich will nicht sagen, *der* richtige) - macht aber in der Praxis leicht Probleme.

              MfG ChrisB

              [1] http://de.selfhtml.org/javascript/objekte/htmlelemente.htm gibt eine Übersicht, welche Attribute man bzgl. HTML-Element-Objekten als "bekannte" betrachten kann.

              --
              “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]