News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 6
Seite [1]
Cheerleader


Beginner



Herkunft: Hamburg
Beiträge: 12
# Thema - 31.08.2009 um 17:28 Uhr
Hi zusammen,

ich stehe vor einer kleinen Herausforderung, der ich alleine nicht Herr werden kann.

Ich habe in einem eigenen Mod z.B. ein Formular mit zwei Listboxen. Der Inhalt der Zweiten Box passt sich abhängig von der Auswahl in der ersten Box an. Die neuen options werden per ajax vom Server geholt. Da mir allerdings in Bezug auf Ajax bisher kein Einblick in die clansphere-internen Funktionen gelungen ist, baut meine derzeitige Lösung auf jQuery-Posts auf.

Wenn ich nun allerdings ein php-Skript per jquery aufrufe, steht mir zwar nach session_start() zumindest die User-Info zur Verfügung, aber ich bin natürlich mit keiner Datenbank verbunden und der ganze Pool an cs_-Funktionen fehlt natürlich auch, das ist natürlich blöd, denn das bedeutet weniger Sicherheit und hohe Doppelpflege von Inhalten zwischen Entwicklungssystem und Livesystem.

Wie schauts also aus? Kann ich mit den CS-Ajax-Funktionen den gewünschten Effekt erreichen und habe dann im PHP auch die Funktionsbibliothek von CS zur Verfügung? Wenn ja: Wie?

Oder gibt es einen pfiffigen PhP-Include mit dem ich bei einem normalen Ajax-Call all diese Dinge verfügbar mache?

Für Tipps und Anregungen bin ich dankbar.

Patrick
Inaktiv
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 1 - 31.08.2009 um 17:42 Uhr
hm besten die ajax-calls an den content.php senden. dann musst du dich nur noch damit auseinander setzen, was da für eine antwort zurück kommt. ansonsten die content.php kopieren und anpassen.

allerdings ist das erstens kein fall für post, sondern für get-requests und zweitens solltest du dir überlegen, ob es nicht mehr sinn macht alles auswhlmöglichkeiten der 2. box von anfang an in einem array mitzusenden, anstatt für jede auswahl ein request zu starten.


------------------
www.laszlokorte.de

Inaktiv
|
Cheerleader
Thread-Ersteller


Beginner



Herkunft: Hamburg
Beiträge: 12
# Antwort: 2 - 01.09.2009 um 06:35 Uhr
Ich werde das heute Abend einmal testen. Vielen Dank für den Ansatz.



Inaktiv
|
Cheerleader
Thread-Ersteller


Beginner



Herkunft: Hamburg
Beiträge: 12
# Antwort: 3 - 10.09.2009 um 21:21 Uhr
So, dann will ich doch nochmal Feedback geben.

Der Ansatz hat perfekt funktioniert. Ich habe hinter ab Zeile 13 content.php folgenden Test-Code eingefügt, der wahre Wunder bewirkt hat:

 
1.
2.
3.
4.
5.
6.
7.
1. / 2. / ... 
 if(isset($_POST['ajaxaction']))
{
    
$response['error'] = 0;
    
$response cs_sql_select(__FILE__'data_maplinks''id, map_id, map2_id, icon, x, y, text_deDE, text_enEN''id='.$_POST['maplinkid'], 001);
    echo 
json_encode($response);
    return;
}


Natürlich fehlt da noch eine Menge Funktionalität drumherum. Aber ich werde das sowieso in eine Ajax-Lib für Admins meiner Seite auslagern und der Test fand nur auf meinem Dev-Server statt.

Zu deinen Anmerkungen in Bezug auf die verwendete Programmiertechnik:

A) Vorlagern der Daten per Array
Hatte ich auch erst überlegt, aber es geht hier um mehrere Tausend Einträge, für eine Funktionalität die eh nur die Content-Manager nutzen können. Die Anzahl der zusätzlichen Requests wird also mutmaßlich nicht so hoch sein, dass es den Server groß belastet. Und mir ist es so lieber, als direkt seitenlange Arrays mittels Javascript auszutauschen.

B) POST vs. GET
Ich habe da ehrlich gesagt keine handfeste technische Argumentation auf der Pfanne. Ich habe einfach überlegt, dass meine Lib gerne einem Standard folgen lassen möchte, also entweder GET oder POST. Ich hatte irgendwie im Hinterkopf, dass GET-Daten eine Beschränkung auf 1024 Byte haben und es kann durchaus passieren, dass meine Formulare diese Grenze sprengen. Ich habe alleine zu den Ingame-Landkarten meiner Seite immer noch historische Informationen die selbst schon diese Grenze sprengen. Von daher war die Überlegung einfach "dann eben alles als POST".

Wenn es aber Argumente dagegen gibt, dann nur raus damit. Ich bin offen für Optimierungsvorschläge.

Trotzdem noch einmal vielen Dank für deine Hilfe.

Patrick


Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 4 - 10.09.2009 um 21:37 Uhr
POST vs GET ganz einfach:

GET wenn inhalt vom Server geholt werden soll um ihn beim clienten anzuzeigen o.Ä.
POST wenn aktiv etwas auf dem Server verändert werden soll

also eine Suche oder die Filterung von angezeigten Daten nach speziellen Kriterien GET
und das erstellen oder editieren von Daten auf dem Server POST

Man könnte jetzt argumentieren, dass das alleinige Anzeigen der Seite ja auch den Counter verändert und daher ein POST sein sollte, aber es geht dabei eben um die aktive Änderung von Daten.


------------------
www.laszlokorte.de

Inaktiv
|
Cheerleader
Thread-Ersteller


Beginner



Herkunft: Hamburg
Beiträge: 12
# Antwort: 5 - 11.09.2009 um 08:05 Uhr
Vielen Dank für die Antwort. Ich habe noch ein wenig recherchiert und ein paar Fingerzeige gefunden, welche die Thematik mit einem kleinen Fundament untermauern.

http://www.onlineassociates.ae/wp-content/images/external/carsonified-get-post.g if

Von daher ist es vermutlich trotz zusätzlichem Post-Header nicht zwingend "verkehrt", Post zu verwenden.


Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 6 - 11.09.2009 um 13:27 Uhr
Ok ist ja das, was ich gesagt hab, nur dass noch die "2048 Zeichen" bedingung hinzu kommt. Aber wann ist die Request-URL schon länger als 2000 Zeichen? Eigentlich nur, wenn ein ganzer Text übermittelt wird und das ist dann ja auch meistens der Fall indem dieser auf dem Server gespeichert werden soll.


------------------
www.laszlokorte.de

Inaktiv
|
Antworten: 6
Seite [1]


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo