Mojo, Ajax und PHP

Strafi

Erfahrenes Mitglied
Hallo Leute,

ick brauch Hilfe und ich hoffe ihr könnt das auch :)

Es geht um eine APP-Entwicklung für das PALM PRÉ, also Mojo, Prototype und PHP

Ich möchte halt Daten die aus einer Datenbank kommen schön Formatiert auf dem Palm ausgeben. Das geht auch, nur möchte ich gern die mojoElemente verwenden. Und genau hier liegt das Problem.

Kurz zum Code!

Mein JS-Code:
HTML:
// Daten holen
scene1.prototype.handleseinZettelButtonPress = function(event){        
    
    email = this.textParameter;
    paxxus = '253532452'; 
    
    
    var URL = "http://www.mydomain.com/xxxxx.php?adre=" + email + '&coxx=' + paxxus;
    seinZettel.mojo.activate();

    var request = new Ajax.Request(URL, {
	method:'get',
	onSuccess: this.myzettel.bind(this),
	onFailure: this.fehler.bind(this)
	
});
    
    
    seinZettel.mojo.deactivate();
    
}

// und die Response-function

scene1.prototype.myzettel = function(transport) {
    var response = transport.responseText || "Keine Verbindung ";
    Mojo.Log.info('enter showResults()');	
    $('inhalt').innerHTML = '' + response;
    Mojo.Log.info('exit showResults()');
}

Jetzt noch die PHP dazu. :)

Hier gebe ich das HTML formatiert zurück. Die x-Mojo Functionen und die Classen sind fertige Elemente, zum Beispiel List-Elemente die man dann später als Button und mehr erweitern kann. Lege ich die Elemente in die HTML-Datei die auf dem Phone läuft werten x-mojo-elemente initialisiert, lass ich aber das HTML von der PHP-Datei als Response mitgeben, werden die mojo-elemente nicht initialisiert. Als würde das laufende JS die ignorieren.

PHP:
echo "<div class=\"palm-group\">";
	echo "<div class=\"palm-group-title\" x-mojo-loc=''>$zettel_ausgabe_titel</div>";
		echo "<div class=\"palm-list\">";
	   		echo "<div class=\"palm-row single\">";
				echo "<div class=\"palm-row-wrapper textfield-group\" x-mojo-focus-highlight=\"true\">";
					echo "<div class=\"title\">";
					while ($line = mysql_fetch_array($result)) {
	      				echo "<div x-mojo-element=\"TextField\" id=\"inhalt\" class=\"inhalt\">$line[einkauf_titel]</div>";
					}
				echo "</div>";
			echo "</div>";
		echo "</div>";
	echo "</div>";
		
echo "</div>";

Gut, jetzt möchte ich gern alle Datensätze die nur von $line[einkauf_titel] kommen an das JS zurückgeben und es in die HTML auf den Phone schreiben lassen, da ja dann alle x-mojo-elemente initialisiert werden. Wie ich einen Wert übergebe ist mir schon klar, aber wie kann ich das mit mehreren Werten realisieren? Und vielleicht zu jeden Wert noch seine ID mitgeben?

Bin neu im Reich von AJAX und co!


Liebe Grüße
 
Moin,

dort würde sich für den Transport der Daten JSON anbieten.

Erstelle aus den Daten, die du aus der DB bekommst, ein Objekt deiner Wahl(assoz. Array bspw.), und codiere es per [phpf]json_encode[/phpf]

Dies MoJo hat eine Methode parseJSON, welches diesen kodierten String wieder in das ursprüngliche Objekt umwandelt, welches du dann per JS verarbeiten kannst.


YouTube Video

 
Danke euch.

Der Austausch funktioniert. Nur habe ich Probleme mehrere Daten die aus der Datenbank in das JSON zu packen. Aber ihr habt mir erma geholfen. Und ich habe dann auch irgendwann mitbekommen, das die lib JSON gar nicht installiert war. :D

Grüße
 

Neue Beiträge

Zurück