Paul: Ajax aufruf

Hallo.
Ich versuche mit Ajax die Form-Felder auffüllen.
Hier die Code:
<script language="Javascript" type="text/javascript">
var ajax = new sack();
 function MakeFull(formname, artno)
 {
  alert('aufruf'+artno);
  ajax.requestFile = 'suche.php?a='+ToGet;
  ajax.onCompletion = AddAllThis(formname);
  ajax.runAJAX();
 }

function AddAllThis(formname)
 {
  eval(ajax.response);
 }
</script>

Die Funktion MakeFull() wird mit Ereigniss onchange="" aufgerufen.
Suche.php sieht so aus:
alert('<?=$_GET['a'];');

Also muss eigentlich nur die Variable a angezeigt werden.
Allerdings kommt die immer "zu spät". D.h. wenn ich den aktuellen Wert von 1 auf 2 ändere, bekomme ich von suche.php nichts zu sehen.
Beim Ändern von 2 auf 3, bekomme ich 2.
Beim Ändern von 3 auf 4, bekomme ich 3.
U.s.w.
Wobei die alert-Ausgabe aus MakeFull() stimmt.

Kann mir bitte jemand erklären, was ich falsch mache?

Danke voraus.

  1. Hallo Paul,

    alert('<?=$_GET['a'];');

    Das sieht höchst verdächtig aus. Irgendwas stimmt da mit den Anführungszeichen nicht.

    eval ist auch nicht zu empfehlen, erzeugt einen riesen Overhead und führt gnadenlos jeden Code (auch schädlichen) aus, der ihm z.B. von einem bösen Proxy im Web untergeschoben werden könnte...

    Gruß, Don P

    1. <script language="Javascript" type="text/javascript">
      var ajax = new sack();

      Was ist sack?

      ajax.onCompletion = AddAllThis(formname);

      Das klingt wie eine Eventhandler, diese benötigen normalerweise eine Funktionsreferenz. Probier mal:

      ajax.onCompletion = function() { AddAllThis(formname); };

      Struppi.

      Also mit Funktionsreferenz hat es geklappt, danke :-)

      Hallo Paul,

      alert('<?=$_GET['a'];');

      Das sieht höchst verdächtig aus. Irgendwas stimmt da mit den Anführungszeichen nicht.

      eval ist auch nicht zu empfehlen, erzeugt einen riesen Overhead und führt gnadenlos jeden Code (auch schädlichen) aus, der ihm z.B. von einem bösen Proxy im Web untergeschoben werden könnte...

      Gruß, Don P

      Anführungszeichen sind o.k. :-) Sieht nur so aus :-) Die nach <? sieht javascript sowieso nicht.

      eval() habe ich nur zum Testen reingesteckt, wollte bloß ausprobieren, ob es üerhaupt geht. Trozdem Danke :-)

  2. <script language="Javascript" type="text/javascript">
    var ajax = new sack();

    Was ist sack?

    ajax.onCompletion = AddAllThis(formname);

    Das klingt wie eine Eventhandler, diese benötigen normalerweise eine Funktionsreferenz. Probier mal:

    ajax.onCompletion = function() { AddAllThis(formname); };

    Struppi.