Forum Doku Wiki Blog

Forumsarchiv 2007, Oktober
Ajax aufruf

archivierte Beiträge lesen

  1. (JAVASCRIPT) Ajax aufruf von Paul, 11. 10. 2007, 16:43

Ajax aufruf

Der folgende Beitrag wurde am 11. 10. 2007, 16:43 Uhr von Paul veröffentlicht.

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.

Ajax aufruf

Der folgende Beitrag wurde am 11. 10. 2007, 17:40 Uhr von donp veröffentlicht.

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

Ajax aufruf

Der folgende Beitrag wurde am 15. 10. 2007, 11:26 Uhr von Paul veröffentlicht.

> > <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 :-)

Ajax aufruf

Der folgende Beitrag wurde am 13. 10. 2007, 09:36 Uhr von Struppi veröffentlicht.

> <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.

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4