Hallo Leute 
erstmal ein dickes Lob an alle! Das forum is imho mit eines der besten in Sachen Coden. Hab hier schon viele nützliche Sachen gefunden die ich bei meinen Projekten dann auch erfolgreich realisieren konnte!
Hab mir natürlich alle How-To´s im Wiki angeschaut. Dabei ist mir aufgefallen das einige dinge anders gemacht werden. Ich will natürlich nicht sagen das sie schlecht gemacht wurden, im gegenteil. Aber ich vermute mal das es auch Leute geben wird die nach einer Art "Universal" lösung suchen... Zumindest was die AJAX funktionen betrifft.
Ich meine dabei konkret die
- function sendRequest(digit)
- function handleResponse()
Ich persönlich mag es überhaupt nicht "Content" und "Code" zu mischen. Deshalb lager ich alles in externe Dateien aus und includiere die je nach bedarf. Ob das nun Klassen sind, header oder footer, JS oder PHP Files.
Deshalb möcht ich hier mal "meine" Lösung vorstellen, vlt kennt der eine oder andere das schon, oder sucht eben genau danach.
Mir ist natürlich klar das die da gezeigten beispiele für die How-To´s geschrieben wurden, mit bedacht auf größe und überschaubarkeit. Damit die Sache auch für "Neulinge" etwas leichter erlernbar ist bzw wird
Hier ein kleiens beispiel...
Als erstes die aufrufende php datei (html geht auch;)
Alles anzeigen
Der wert in klammern bei dem aufruf
kann frei geändert werden, um zu sehen das tatsächlich dieser wert übergeben wird. wer strings übergebn möchte muss den wert im aufruf in ' ' setzen. z.b.
Alles anzeigen
mit folgendem aufruf ( welcher auch in der action.js Datei stehen muss ) kann man
dann die gewünschten aktion ausführen lassen. Dabei entsteht der effekt, das das eben dargestellte bei nochmaligen ausführen wieder verschwindet. manchmal nützlich, machmal auch störend
Alles anzeigen
Alles anzeigen
Der Code ist getestet und funzt einwandfrei.
bei fragen einfach fragen
hoffe es hilft falls jemand danach suchen sollte....
habe bis jetzt noch keine schlechten erfahrungen mit dieser vorgehensweise gemacht und kann es daher auch für größere projekte ohne weiteres empfehlen...
natürlich lässt sich das ganze ohne weiteres anpassen
mfg der BendIt

erstmal ein dickes Lob an alle! Das forum is imho mit eines der besten in Sachen Coden. Hab hier schon viele nützliche Sachen gefunden die ich bei meinen Projekten dann auch erfolgreich realisieren konnte!
Hab mir natürlich alle How-To´s im Wiki angeschaut. Dabei ist mir aufgefallen das einige dinge anders gemacht werden. Ich will natürlich nicht sagen das sie schlecht gemacht wurden, im gegenteil. Aber ich vermute mal das es auch Leute geben wird die nach einer Art "Universal" lösung suchen... Zumindest was die AJAX funktionen betrifft.
Ich meine dabei konkret die
- function sendRequest(digit)
- function handleResponse()
Ich persönlich mag es überhaupt nicht "Content" und "Code" zu mischen. Deshalb lager ich alles in externe Dateien aus und includiere die je nach bedarf. Ob das nun Klassen sind, header oder footer, JS oder PHP Files.
Deshalb möcht ich hier mal "meine" Lösung vorstellen, vlt kennt der eine oder andere das schon, oder sucht eben genau danach.
Mir ist natürlich klar das die da gezeigten beispiele für die How-To´s geschrieben wurden, mit bedacht auf größe und überschaubarkeit. Damit die Sache auch für "Neulinge" etwas leichter erlernbar ist bzw wird

Hier ein kleiens beispiel...
Als erstes die aufrufende php datei (html geht auch;)
Quellcode
- Datei: main.php
- <?PHP
- echo<<<txt
- <html>
- <head>
- <title>titel der seite</title>
- <script language="javascript" src="action.js"></script>
- </head>
- <body>
- <a href="javascript:test1()">Zeige Test an</a> <br><br>
- <a href="javascript:test2(129756462346)">Zeige Test2 an</a> <br><br>
- <hr noshade="1">
- <div id="ajax"></div>
- </body>
- </html>
- txt;
- ?>
Der wert in klammern bei dem aufruf
kann frei geändert werden, um zu sehen das tatsächlich dieser wert übergeben wird. wer strings übergebn möchte muss den wert im aufruf in ' ' setzen. z.b.
Quellcode
- Datei: action.js
- function createRequestObject() {
- var ro;
- //man könnte hier natürlich auch mit try..catch arbeiten, aber bis jetzt hatte ich
- // noch keine Probleme mit dem Code. Läuft vorzüglich im FF genauso wie im IE
- if(navigator.appName.search("Microsoft") > -1) {
- if(ro = new ActiveXObject("Microsoft.XMLHTTP"));
- else if (ro = new ActiveXObject("MSXML2.XMLHTTP"));
- } else {
- ro = new XMLHttpRequest();
- }
- return ro;
- }
- var http = createRequestObject();
- function handleResponse() {
- if((http.readyState == 4) && (req.status == 200)){
- var response = http.responseText;
- var update = new Array();
- if(response.indexOf('|' != -1)) {
- update = response.split('|');
- //alert(update); //für debuging
- document.getElementById(update[0]).innerHTML = update[1];
- }
- }
- }
mit folgendem aufruf ( welcher auch in der action.js Datei stehen muss ) kann man
dann die gewünschten aktion ausführen lassen. Dabei entsteht der effekt, das das eben dargestellte bei nochmaligen ausführen wieder verschwindet. manchmal nützlich, machmal auch störend

Quellcode
- function test1() {
- if (document.getElementById('ajax').innerHTML != '') { // Prüfen ob Inhalt vorhanden
- document.getElementById('ajax').innerHTML = ''; // wenn vorhanden, inhalt entfernen
- } else { // wenn nicht, lade daten nach
- http.open('get', 'rpc.php?act=test1');
- http.onreadystatechange = handleResponse;
- http.send(null);
- }
- }
- // hier ein beispiel mit parameterübergabe an die funktion
- function test2(uid) {
- if(document.getElementById('ajax').innerHTML != '') {
- document.getElementById('ajax').innerHTML = '';
- } else {
- http.open('get', 'rpc.php?act=test2&uid='+uid);
- http.onreadystatechange = handleResponse;
- http.send(null);
- }
- }
Quellcode
- Datei: rpc.php
- <?PHP
- if($_REQUEST['act'] == "test1") echo "ajax|".test();
- if($_REQUEST['act'] == "test2") echo "ajax|".test2($_REQUEST['uid']);
- function test()
- {
- $out.= "<h3>Ich bin die TEST Funktion. Ich wurde per AJAX und PHP erstellt!</h3><br>";
- $out.= "<p>Eine Mehrzeilige ausgabe ist absolut kein Problem.Allerdings<br>";
- $out.= "besteht mit dieser variante, das von mir verhasste problem der vermischung<br>";
- $out.= "von Content und Code</p>";
- $out.= "<center><b>ich kann aber dafür PHP benutzen </b></center><br><br>z.B.:";
- $out.= 'Deine IP ist: '. $_SERVER['REMOTE_ADDR'].' usw.';
- return $out;
- }
- function test2($id)
- {
- $out.= "<h3>Ich bin die 2. TEST Funktion. !</h3><br>";
- $out.= "<p>Mir wurde ein wert(zahl in dem fall, string würde aber auch gehen mit einer kleinen änderung) als variable übergeben.<br>";
- $out.= "mit dem kann ich natürlich arbeiten und darauf zugreifen.";
- $out.= "</p><br>";
- $out.= "Der Wert lautet: ". $id.'<br>';
- $out.= 'Have a nice day';
- return $out;
- }
- ?>
Der Code ist getestet und funzt einwandfrei.
bei fragen einfach fragen

hoffe es hilft falls jemand danach suchen sollte....
habe bis jetzt noch keine schlechten erfahrungen mit dieser vorgehensweise gemacht und kann es daher auch für größere projekte ohne weiteres empfehlen...
natürlich lässt sich das ganze ohne weiteres anpassen

mfg der BendIt
.:Reden Ist Schweigen und Silber Ist Gold:.
real programmers don't comment their code: if it was hard to write, it should be hard to read!
real programmers don't comment their code: if it was hard to write, it should be hard to read!