![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 02.09.2005
Beiträge: 68
|
Halli Hallo Hallöle!
Ich hab da ein Ajax / JS Problem mit folgender function: PHP-Code:
also eine neue Funktion, die genauso aufgebaut ist wie obige, nur anstatt: document.getElementById(e).innerHTML = alObj.responseText; einfach das ganze "returnen" lassen. Aber wenn ich nun: return alObj.responseText; schreib, bekomm ich nichts zurück. Habt ihr da ne Idee? LG Marcel |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 495
|
das problem ist folgendes: du rufst zunächst die funktion AjaxLoaderGet auf, die dann ein XMLHttpRequest erzeugt. Und diesem Request-Object wird eine methode onreadystatechange zugweisen. Danach wird das request abgesendet und die funktion ist beendet.
Sobald ein response eintrifft, wird dann quasi in einem anderen thread die onreadystatechange-funktion ausgeführt. Sie kann dann aber keinen Rückgabewert für AjaxLoaderGet mehr erzeugen, weil diese Funktion ja schon beendet ist. durch ein bischen tricksen und ein synchrones request könnte man aber auch die AjaxLoaderGet-funktion den empfangenen response zurückgeben.
__________________
Weißt Bescheid - Scheiß wie weit |
|
|
|
|
|
Nach oben #3 |
|
Benutzer
Registriert seit: 02.09.2005
Beiträge: 68
|
Problem: synchroner Request impossible, da Programm sonst ned läuft so wie es geplant und schon PHP-seitig Programmiert ist.
Selbst "erdachte" Möglichkeit: Könnte ich einen <div> Container verwenden in den ich speichere und nach dem speichern wieder ausles? Praktisch ein <div id="cache"></div> speichern ganz normal... document.getElementById('cache').innerHTML = alObj.responseText; und auslesen mit: var cache = document.getElementById('cache').innerHTML; document.getElementById('cache').innerHTML = ''; 1. geht das überhaupt so? 2. Seht ihr (du) da Probleme die ich als "anfänger" in Sachen Ajax & JS nicht seh? LG Marcel PS: Danke für deine Ausführliche Anwort [EDIT] Ich habs nun Probiert, er sagt aber das er hier in der "getCache()"-Function -> return cache; ein Objekt erwartet. o_O Was mach ich denn da falsch? PHP-Code:
Geändert von Julied64 (07.03.2007 um 15:40 Uhr). |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 495
|
du kannst den response auch einfach in ner globalen variable "cachen". dafür brauchst du kein div.
javascript Code:
__________________
Weißt Bescheid - Scheiß wie weit |
|
|
|
|
|
Nach oben #6 |
|
Benutzer
Registriert seit: 02.09.2005
Beiträge: 68
|
Nun hät ich gleich noch ne Frage.
Ich mach ja wie oben gezeigt ein Fenster auf. in dem Fenster hab ich einen PrintButton: <button id="printerButton" onClick="javascript:self.print();">Drucken</button> Er mag aber ned drucken, warum? Hab auch schon window.print() probiert...mit semikolon und ohne....mir javascript: und ohne...nix geht |
|
|
|
|
|
Nach oben #7 |
|
Erfahrener Benutzer
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 495
|
bei nem onclick musst du das protokoll (javascript
HTML-Code:
<button id="printerButton" onClick="window.print();">Drucken</button> mit welchem browser hast du das getestet?
__________________
Weißt Bescheid - Scheiß wie weit |
|
|
|
|
|
Nach oben #8 |
|
Erfahrener Benutzer
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 296
|
Seltsame Syntax
html Code:
__________________
. <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination. |
|
|
|
|
|
Nach oben #9 |
|
Benutzer
Registriert seit: 02.09.2005
Beiträge: 68
|
So. Nu hab ichs auch mit input probiert. ohne das javascript: hab ich es schon probiert, siehe vorherigen Post from myself...
Ich öffne Das window ja mit JS. also: fenster = window.open(.........); und fenster.print(); geht auch ned fenster.print == true ergibt -.- getestet mit IE 6 und...mom.... hmm... mit dem FF gehts Jetzt bin ich verwirrt LG Marcel |
|
|
|
|
|
Nach oben #10 |
|
Erfahrener Benutzer
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 296
|
Poste mal Link... Vermutlich ist das ein anderes Problem. Der von mir gepostete Code funktioniert bei mir in Safari, Netscape, Opera und Firefox
//EDIT: Mit dem IE for Mac (Version 5.2
__________________
. <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination. |
|
|
|
|
|
Nach oben #11 |
|
Benutzer
Registriert seit: 02.09.2005
Beiträge: 68
|
Ähm, Link geht schlecht. Dazu müsst ich dir LoginDaten geben. Und dies kann ich nicht machen, da es ein Firmenbackend ist. Dazu verbietet es mir allein schon das BDSG xD Würd ich gern machen, da es sicher zum zur Aufklärung dienen würde.
Kann dir aber jeglichen "TeilCode" geben den du brauchst. Den größten Teil des JS Codes hab ich oben gepostet. Ich posts aber nun nochmal: PHP-Code:
Also...mir gehts nun eigentlich nur noch um das JS-seitige drucken. Sprich das "automatische" drucken. LG Marcel |
|
|
|
|
|
Nach oben #13 |
|
Erfahrener Benutzer
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 296
|
Hm... wirklich seltsam. Ich habe gerade keine Lust mein virtuelles Windows zu starten. Aber vielleicht kannst du es mal testen: Versuch mal auf http://de.silberperle.org/ die Druckfunktion (Bild unten) mit dem IE.
Ach ja: Ich will keinen Kommentar zur Seite
__________________
. <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination. |
|
|
|
|
|
Nach oben #15 |
|
Erfahrener Benutzer
Registriert seit: 17.08.2005
Beiträge: 423
|
auf siberperle.de ist es ein Link, bei dir n Button. vll mag der IE bei einem Button nicht drucken... Da ich kein IE benutze (gründe gibt es genügend im netz) kann ich es nicht ausprobieren. (ich hab den garnicht mehr)
|
|
|
|
|
|
Nach oben #16 |
|
Benutzer
Registriert seit: 02.09.2005
Beiträge: 68
|
Also. Ums abzuschließen. Es geht ned, warum auch immer. Ich setz die Funktion print() regulär ein. ich habs in jeglichen versionen, self.print(), window...., print() allein usw. probiert. Auch fenster = window.open(...) und dann fenster.print() geht nicht. obwohl fenster.print true ergibt -.-
Naja...So What... LG Marcel |
|
|
|