php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.11.2009, 18:53  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard [Erledigt] Ajax response in variable

Hallo Leute,

ich hab mal wieder ein Problem, bei dem ich nicht weiter komme.

ich habe eine seite in der ich einen ajax request absetze. die request funktion selber ist in einer extra js datei. das absenden und verarbeiten funktioniert alles super. nur möchte ich das die antwort vom request der request.responseText in eine variable gespeichert wird die ich auf der seite verarbeiten kann auf der ich den request abgesetzt habe. habt ihr einen tipp oder kennt ihr eine seite wo dieses verfahren beschrieben ist?

Code:
request.onreadystatechange = function() { if(interpretRequest) inhalt = request.responseText;}
inhalt ist die variable in der die antwort gespeichert werden soll. was muss ich machen damit die variable auf der seite wo ich den request abgesetzt habe befüllt wird?!

vielen dank für die hilfe
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.11.2009, 19:10  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
inhalt ist die variable in der die antwort gespeichert werden soll. was muss ich machen damit die variable auf der seite wo ich den request abgesetzt habe befüllt wird?!
Meinst Du: „Was muss ich machen, damit die Variable auf der Seite, auf die ich den Request absetze, befüllt wird?“ ?
Dann: request.responseText enthält das, was Du PHP-seitig ausgibst (echo). Sinnvollerweise mit einem passenden mime-type- und encoding-Header davor. Vermutlich nicht, denn Du schreibst, es würde alles funktionieren. Dann aber verstehe ich die Frage nicht. Du speicherst doch alles bereits in inhalt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 18.11.2009, 19:58  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard

ok jetzt ein bisschen detaillierter:

seite.php -> request wird ausgeführt, variable inhalt soll nach erfolgreichem request + response verarbeitet werden. es soll eine funktion mit dem inhalt der variable inhalt gestartet werden oder die funktion kann auf die befüllte variable inhalt zugreifen

script.js -> request funktion übergibt parameter an verarbeitung.php und erhält eine antwort per echo die in der variable inhalt gespeichert wird

verarbeitung.php - verarbeitung der von script.js gesendeten parameter und rückgabe durch ein echo.

wenn ich request.responseText; an ein div übergebe klappt das wunderbar. nur kann ich die variable inhalt auf seite.php nicht weiterverarbeiten weil ich vermutlich einen groben fehler mache.
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline   Mit Zitat antworten
Alt 18.11.2009, 20:33  
umt
Benutzer
 
Registriert seit: 21.02.2008
Beiträge: 35
umt befindet sich auf einem aufstrebenden Ast
Standard

Heißt das, du kannst nicht darauf zugreifen?
Hast du die Variable global deklariert?
__________________
www.netzonaut.de - Ein Blog zu den Themen Internet, Webentwicklung, Linux und OpenSource
www.jexlab.net - Webentwicklung zu fairen Konditionen
umt ist offline   Mit Zitat antworten
Alt 18.11.2009, 20:33  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Versteh ich immer noch nicht. Was ist jetzt seite.php und was verarbeitung.php (doofe Namen)? Was willst Du wo weiterverarbeiten? Ajax/Javascript erhält inhalt, damit kannst Du alles machen: Ins DOM einfügen, ein alter, ein Firumlarfeld befüllen… So what?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 18.11.2009, 20:56  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard

Zitat:
Zitat von umt Beitrag anzeigen
Heißt das, du kannst nicht darauf zugreifen?
Hast du die Variable global deklariert?
wie und wo mach ich das am besten?
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline   Mit Zitat antworten
Alt 18.11.2009, 21:13  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

eine nicht deklarierte Variable ist automatisch global.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.11.2009, 18:31  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard

also ich habe herausgefunden, dass die variable inhalt befüllt wird, nur dauert das eine weile. und genau das ist das problem. es dauert und deshalb bricht mein script irgendwie ab.

kann man das nicht irgendwie ändern, und sagen wenn die antwort (response) da ist. in dem fall inhalt dann führe weiter aus?!

hier mein globales ajax script.
Code:
// Ladegrafik
function stateloading(state,statusid) {
  if (state) document.getElementById(statusid).innerHTML = "<img border=\'0\' src=\'images/ajax-loader.gif\'>";
  else document.getElementById(statusid).innerHTML = "";
}


// Request senden
function setRequest(rurl,responsedivid,feld1,value1,feld2,value2,feld3,value3,feld4,value4,feld5,value5,feld6,value6,feld7,value7,feld8,value8,feld9,value9) {
  var params = feld1+'='+value1+'&'+feld2+'='+value2+'&'+feld3+'='+value3+'&'+feld4+'='+value4+'&'+feld5+'='+value5+'&';
  params += feld6+'='+value6+'&'+feld7+'='+value7+'&'+feld8+'='+value8+'&'+feld9+'='+value9;
  
  // nur test für variable inhalt
  if (rurl != "album_anlegen.php")
    {
    responsedivid = responsedivid;
    stateloading(true,responsedivid);
    }
    
  // Request erzeugen
  if (window.XMLHttpRequest) {
    request = new XMLHttpRequest(); // Mozilla, Safari, Opera
  } else if (window.ActiveXObject) {
    try {
      request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
    } catch (e) {
      try {
        request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
      } catch (e) {}
    }
  }

  // überprüfen, ob Request erzeugt wurde
  if (!request) {
    alert("Kann keine XMLHTTP-Instanz erzeugen");
    return false;
  } else {
    // Request öffnen
    request.open('post', rurl, true);

    // Requestheader senden
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    // Request senden
    request.send(params);

    // Request auswerten
    //request.onreadystatechange = interpretRequest();

    // nur test für variable inhalt
    if (rurl == "album_anlegen.php")
        {
        request.onreadystatechange = function() { if(interpretRequest) inhalt = request.responseText;}
        }
        else
        {
        request.onreadystatechange = function() { if(interpretRequest) document.getElementById(responsedivid).innerHTML = request.responseText; }
        }
  }
}

function interpretRequest() {
  success = false;
  if(request.readyState==4 && request.readyState==200) success = true;
  return success;
}
den request setze ich wie folgt ab:

PHP-Code:
echo"<form action=\"album_anlegen.php\" method=\"post\" name=\"album_anlegen\"  id=\"registrierung\" onsubmit=\"javascript: setRequest('album_anlegen.php','status','ajax_user_id','$uid','ajax_titel',document.getElementById('input_titel').value,'ajax_beschreibung',document.getElementById('input_beschreibung').value); addRow('test',lastTr); lastTr++; document.album_anlegen.reset(); showhide('main'); showhide('main_album_anlegen'); return false;\">"
Wenn ich die variable inhalt in der funktion addrow testweise mit irgendeinem wert befülle funktioniert alles ohne probleme. aber ich benötige die wirklichen wert aus inhalt der per response als antwort auf meinen request kommt. lass ich das alles einfach so werde ich automatisch nach album_anlegen.php weitergeleitet.

hat jemand eine idee?
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline   Mit Zitat antworten
Alt 20.11.2009, 21:09  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Weißt du was das erste A in AJAX bedeutet? Asynchron! Daher ist die Variable erst später verfügbar. Die Stelle, an der du den Wert in "inhalt" schreibst, ersetzt du einfach durch einen Funktionsaufruf. Diese Funktion führt nun aus, was immer du möchtest.
Chriz ist offline   Mit Zitat antworten
Alt 20.11.2009, 21:42  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard

ok das würde dann so aussehen

Code:
request.onreadystatechange = function() { if(interpretRequest) addRow('test',lastTr);}
ich benötige dann aber in der Funktion addRow den request.responseText bzw. die variable inhalt. frag ich das dann einfach in der funktion ab oder wie meinst du das? In der Funktion addRow wird einfach bloß eine Tabellenzeile an eine bestehende Tabelle angefügt. Der Tabelleninhalt kommt aus einem Formular was zuvor ausgefüllt wurde. Wichtig für die Anzeige ist die die Antwort aus dem request.responseText bzw. inhalt die ich für die werte in der tabellenzeile benötige.
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie lade ich ein Javascript nach einer AJAX Abfrage neu? da.eXecutoR JavaScript, Ajax und mehr 3 21.09.2009 11:15
Problem Undefined variable: banbanban PHP Tipps 2009 5 04.03.2009 17:55
1111: AJAX meets PHP (indirectly) Nikolaus 2.0 Adventskalender 2008 5 15.12.2008 11:00
[Erledigt] Verliere Zuordung in einer JS Klasse tomtaz JavaScript, Ajax und mehr 2 08.12.2008 21:55
Variable per Session übergeben? Spricht etwas dagegen? Lapje PHP Tipps 2008 6 20.10.2008 21:49
Probleme mit Sonderzeichen bei Ajax (prototype)... go1denboy JavaScript, Ajax und mehr 1 31.08.2008 18:44
Undefined variable Undefined property: block xxJJxx PHP Tipps 2008 16 05.08.2008 15:30
AJAX Response: Firebug gibt Alert aus Curanai HTML, Usability und Barrierefreiheit 1 20.01.2008 20:38
AJAX: Session-Inhalt an PHP Curanai HTML, Usability und Barrierefreiheit 2 05.11.2007 15:45
Fileupload via AJAX GSJLink HTML, Usability und Barrierefreiheit 11 07.09.2007 15:44
Ajax und Sonderzeichen? GSJLink HTML, Usability und Barrierefreiheit 1 11.11.2006 14:36
problem mit variable snatch-ic PHP Tipps 2007 5 13.12.2005 13:18
Variable durch 2. Variable bestimmen Quagga PHP Tipps 2005-2 11 26.10.2005 17:34
Variable in einer Variable Beatbox PHP Tipps 2005 7 15.01.2005 15:55
Warum wird Variable nicht übergeben??? Anuschka PHP Tipps 2005 2 06.01.2005 13:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax response inhalt, php ajax response, ajax response php, ajax response, javascript response als wert für variable, php response, request.send mehrere variablen, ajax response verarbeiten, ajax.request response verarbeiten, php ajax response senden, ajax php response, javascript php response verarbeiten, ajax request.responsetext als variable, return ajax response to php variable, interpretrequest weiterverarbeiten, ajax response javascript, response je nach php variable, ajax send mehrere variablen, ajax response in variable, ajax response html

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum