Portal > Foren > PHP > PEAR, PECL und Frameworks > AJAX-Problem in Kombination mit Smarty
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 18.09.2006, 16:53 Nach oben    #1
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard AJAX-Problem in Kombination mit Smarty

Hallo Leute,

ich hab folgendes Problem:

PHP-Code:
if ($_GET['do'] == "getGebDetail") {
    
$x SampleFunctions::checkInteger($_GET['x']);
    
$y SampleFunctions::checkInteger($_GET['y']);
    
$q SampleFunctions::checkInteger($_GET['q']);
    
$row mysql_query("SELECT * FROM game_gebaeude WHERE gebid = '$q'")or die(mysql_error());

    if(
mysql_num_rows($row) < 1) {

            
$gui->assign("content","Fehler! Dieses Geb exisitert nicht"); 
und zwar ist $gui ein Objekt von Smarty.
Das ganze wird wie hier im Forentutorial beschrieben, per Ajax aufgerufen.

Er übergibt nur den neuen Wert von {$content} nicht, bzw wird nicht nach zutreffen der Bedinung übergeben.
Setze ich jedoch ein echo an die Stelle, wird das ohne Probleme ausgegeben.

Kann man Smarty-Platzhalter nicht mit Ajax verwenden?

Danke
Ljungi
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.09.2006, 16:56 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Dieses Thema wurde verschoben aufgrund von ..
.. der Erstellung im falschen Forum.


Bemerkung:
Es handelt sich hierbei ja eher um ein Smarty-spezifisches, als um ein generelles PHP-Problem.

verschoben


--------------

Ich muss gestehen, dass ich das hier nicht verstanden habe
Zitat:
Er übergibt nur den neuen Wert von {$content} nicht, bzw wird nicht nach zutreffen der Bedinung übergeben.
Setze ich jedoch ein echo an die Stelle, wird das ohne Probleme ausgegeben.
Wo setzt du ein "echo" hin und was genau ist {$content}?

Danke.
Grüße, Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.09.2006, 17:06 Nach oben    #3
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Hm, ok...

Also Ben ^^

Ich habe ein Template in dem der Platzhalter {$content} vorkommt.
Da ich nun mittels Ajax
HTML-Code:
        function sendRequest(url,id) {

            if (!xhttp) {
                alert("Fehler beim initialisieren von XMLHttpRequest");
                return; // exit
            }
			
            var q = document.getElementById(id).value;
            q = encodeURIComponent(q);
            xhttp.open("GET",url+q,true);
            xhttp.onreadystatechange=sendRequest_callback;
            xhttp.send(null);

        }
das ganze aufruf, wird natürlich auch ein Wert zurückgegeben:

HTML-Code:
        function sendRequest_callback() {

            if (xhttp.readyState==4 && xhttp.status==200)
            	tmp = xhttp.responseText;
                update_div(tmp);

        }

        function update_div(src) {
			document.getElementById("2").innerHTML = src ;
	}
Der HTML-Quelltext sieht so aus:
HTML-Code:
<div id="2">
  {$content}
</div> 
Nun wird
PHP-Code:
 $gui->assign("content","Fehler! Dieses Geb exisitert nicht"); 
ignoriert.

PHP-Code:
 echo "dieses geb gibts nicht"
Das gibt er allerdings innerhalb des Div's aus.

Nun wollte ich gerne wissen, wie ich den Wert des Platzhalters mit Ajax ändern kann. Oder ob ich ein grundsätzliches Problem habe, das ich nicht erkenne (denkfehler).

Hoffe das nun verständlich ausgedrückt zu haben ^^
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.09.2006, 19:37 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Hm, ich habe ja nicht wirklich Ahnung von Smarty. Muss ich ja zugeben, ne?

Ich würde mal austesten, ob die assign-Methode überhaupt aufgerufen wird.
Heißt: Eine Testausgabe in diese Methode einbinden.

Ich hatte erst daran gedacht, vielleicht mal
http://smarty.php.net/manual/de/variable.debugging.php

zu verwenden, allerdings
Zitat:
Die Konsole zeigt keine Variablen an, die innerhalb des Templates mit {assign} zugewiesen wurden.
*ploink* .. also doch anders.

Dann vielleicht mal hier schauen:
http://smarty.php.net/manual/de/lang...tion.debug.php

Oder eben manuell etwas in der assign-Methode rumbasteln, einfach mal um herauszufinden, was da schief läuft.

Grüße, Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.09.2006, 19:44 Nach oben    #5
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Zitat:
Zitat von Ben Beitrag anzeigen
Hm, ich habe ja nicht wirklich Ahnung von Smarty. Muss ich ja zugeben, ne?
Unser Ben ^^


Zitat:
Zitat von Ben Beitrag anzeigen
Ich würde mal austesten, ob die assign-Methode überhaupt aufgerufen wird.
Heißt: Eine Testausgabe in diese Methode einbinden.
Nein, wird aufgerufen, aber hat keinen Einfluss auf die Ausgabe. Das ist es ja. Ich denke, es hat was damit zu tun, dass Smarty die Templates erst kompiliert und dann ausgibt, was wiederum einen reload der html-Datei erfordern würde, was wiederum nicht ohne Seitenaktualisierung machbar ist.


Find ich schade, denn das wäre einfach toll gewesen.

Sollte ich mit meinen Schlussfolgerungen falsch liegen, bitte interveniert und korrigiert.
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.09.2006, 19:48 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Zitat:
Zitat von ljungi Beitrag anzeigen
Ich denke, es hat was damit zu tun, dass Smarty die Templates erst kompiliert und dann ausgibt, was wiederum einen reload der html-Datei erfordern würde, was wiederum nicht ohne Seitenaktualisierung machbar ist.
Hört sich recht interessant und auch nachvollziebar an.
Kannst du denn nicht versuchen diese Kompilierung manuell durchzuführen?
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.09.2006, 19:56 Nach oben    #7
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Gute Idee, mal sehen ob ich da im Quelltext was finde.

Für weitere Ideen bin ich auch dankbar ^^


Finde leider keine möglichkeit das direkt nach der übergabe zu kompilieren und dann erst anzuzeigen.
__________________
Vive la France! Welcome to Sarkoworld...

Geändert von ljungi (18.09.2006 um 20:46 Uhr)
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.09.2006, 19:21 Nach oben    #8
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

du rufst doch serverseitig irgendeine funktion bei dem ajax request auf, richtig? und ajax bekommt ja das als responsetext, was dein php teil dann ausgibt. also könntest du doch ein 2. template oder so. also z.b.:

PHP-Code:
// script, das von ajax requestet wird:
if ($_GET['do'] == "getGebDetail") {
    
$x SampleFunctions::checkInteger($_GET['x']);
    
$y SampleFunctions::checkInteger($_GET['y']);
    
$q SampleFunctions::checkInteger($_GET['q']);
    
$row mysql_query("SELECT * FROM game_gebaeude WHERE gebid = '$q'")or die(mysql_error());

    if(
mysql_num_rows($row) < 1) {

            
$gui->assign("content","Fehler! Dieses Geb exisitert nicht");  

     }
     echo 
$gui->fetch('dein_tpl.tpl');

</span></span>
björn ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.09.2006, 21:40 Nach oben    #9
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Das hatte ich bereits probiert, allerdings auch ohne Erfolg. Nun bin ich back to the roots, hab mir n php-Template gemacht, das ich einfach include
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.09.2006, 07:28 Nach oben    #10
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

Zitat:
Zitat von ljungi Beitrag anzeigen
Das hatte ich bereits probiert, allerdings auch ohne Erfolg. Nun bin ich back to the roots, hab mir n php-Template gemacht, das ich einfach include
hm, dann hast du irgendwas falsch gemacht. dsa sollte so auf jeden fall funktionieren, bzw tut es auch, da ich es auch auf diese weise mache!!
björn ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrsprachigkeit mit Smarty Eyüp PEAR, PECL und Frameworks 7 08.06.2007 15:40
[AJAX] Eine Einführung in AJAX und XMLHttpRequest Jay Tutorials 1 08.12.2006 16:21
Problem beim Einsatz von Ajax Skinwalker PHP-Programmierung 16 10.03.2006 20:04
Navigation auf Smarty umstellen?! napsio PEAR, PECL und Frameworks 4 25.01.2006 19:22
OSX + Eclipse 3.1 Problem bacarni Eclipse 3 29.07.2005 21:19


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45