Avatar billede solari Nybegynder
22. januar 2008 - 15:31 Der er 7 kommentarer

Hvordan for man request tilbage fra Prototype Ajax.Request

Hvordan for man request tilbage fra Prototype Ajax.Request

Hej alle kloge mennesker

Jeg har et problem. Jeg bruge en function i javascript der kan noget i stil af det her:

function menuAjax(menu)//menu er et object
{
  new Ajax.Request("jstest/testphp.php",
  {
      method: 'post',
      parameters: '',// Da menu er et object regner jeg med man ikke kan køre den igennem parameterne
      onComplete: function(transport)
                  {
                    // Det er denne text jeg er interseeret i
                    text = transport.responseText;
                  }
  });

  menu.add(text);//det er skal være texten oppe fra function

  return menu;
}

er der nogen der ved hvordan man kan gøre dette?

kunne forstille mig man kunne sætte
ajax = new Ajax.Request("jste...

også bagefter kunne skrive

menu.add(ajax.getRequest); //men det giver bare undefined

Håber der er nogen JavaScript/Ajax/Prototype freaks der ude.

På forhånd tak
Med Venlig Hilsen
Solari
Avatar billede solari Nybegynder
22. januar 2008 - 16:16 #1
mit problem vil også være lyst hvis jeg kan få menu objektet ind i functionen:

function menuAjax(menu)//menu er et object
{
  new Ajax.Request("jstest/testphp.php",
  {
      method: 'post',
      parameters: '',
      onComplete: function(transport, menu)
                  {
                    text = transport.responseText;

                    menu.add(text);
                  }
  });
}

Med Venlig Hilsen
Solari
Avatar billede w13 Novice
22. januar 2008 - 22:10 #2
Nu har jeg kun skimmet dit spørgsmål hurtigt, da jeg står og skal ud af døren, men kan du ikke bare gøre følgende så?:

function menuAjax(menu)//menu er et object
{
  new Ajax.Request("jstest/testphp.php",
  {
      method: 'post',
      parameters: '',
      onComplete: function(transport, menu)
                  {
                    menu.add(transport.responseText);
                  }
  });
}
Avatar billede bobslaede Nybegynder
23. januar 2008 - 12:23 #3
w13, det vil næsten virker, udover at du ikke kan tilføje menu objectet til din onComplete function, da den inde i funktionen vil være json headerne, istedet for menu objectet. Hvis det ikke er listet som et argument, vil det virke.
Avatar billede solari Nybegynder
23. januar 2008 - 18:31 #4
Hej W13
Ja den har jeg prøvet :-) men tak for forsøget.

Men bobslaede hvad mener du med at det vil virke, "hvis det ikke er listet som et argument" ?

Jeg har også prøvet:

function menuAjax(menu)//menu er et object
{
  var res;

  new Ajax.Request("jstest/testphp.php",
  {
      method: 'post',
      parameters: '',
      onComplete: res = function(transport, menu)
                  {
                    return transport.responseText;
                  }
  });

  menu.add(res);
}

Det virker desvære heller ikke :-(
res er en string med:
res = "function(transport, menu)
              {
                return transport.responseText;
              }"

Det synes jeg er lidt mærkeligt

Med Venlig Hilsen
Solari

Håber stadig på hjælp :-)
Avatar billede olebole Juniormester
23. januar 2008 - 20:18 #5
<ole>

function menuAjax(menu)//menu er et object
{
  new Ajax.Request("jstest/testphp.php",
  {
      method: 'post',
      parameters: '',
      onComplete: function(transport)
                  {
                    menu.add(transport.responseText);
                  }
  });
}

/mvh
</bole>
Avatar billede solari Nybegynder
28. januar 2008 - 11:00 #6
Hey Olebole

sorry den lange responstid har haft en lang håndbold weekend :-).

Har testet dit svar. det virker sådan set. men menu objektet reagere anderledes hvis det ligger inde i function'en end udenfor (en lille skitse):

function menuAjax(menu)//menu er et object
{
  new Ajax.Request("jstest/testphp.php",
  {
      method: 'post',
      parameters: '',
      onComplete: function(transport)
                  {
                    // når den ligger her virker den men den opdatere
                    // menu på skærmen en mouseover senere.
                    menu.add(transport.responseText);
                  }
  });
  // når den ligger her virker den med det første mouseover
  menu.add(transport.responseText);
}

en smule mærkeligt :-(.

Når men oleBole tak for svaret du får pointne.

hvis du/eller andre har en ide til hvordan man kommer uden om problemet.
men kunne forstille mig at det må være noget der gå galt imellem menu objektet og protoType. (det er JsDOMenu 1.3 hvis det skulle ringe en klokke hos nogen)

sender du et svar oleBole

Med venlig hilsen
Solari
Avatar billede netkoen Nybegynder
10. juli 2009 - 11:30 #7
Lækkert spørgsmål.. Ville bare sige at det også hjalp mig med at løse et par problemer..

Så tak for det :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester