PHP Klasse mittels AJAX weitergeben / zur Verfügung stellen.

  • Tag zusammen,


    folgendes Problem: Ich habe eine PHP Klasse, die in der index.php erstellt wird.

    PHP
    $o = new meineKlasse();


    Diese Klasse hat nun diverse Funktionen, welche ich, mittels JavaScript aufrufen möchte. Dazu viel mir lediglich AJAX ein.
    Allerdings kennt die .php Seite, die ich via HttpRequest aufrufe, die erstelle Variable $o nicht und somit auch die passenden Funktionen nicht.


    Gibt es da irgendeine Möglichkeit, der AJAX Seite quasi mitzuteilen, dass $o bereits existiert, oder wie auch immer man das nennen möchte?


    Wär cool, wenn da jemand ne Lösung zu kennt :p Google hat mich bislang nur zu json gebracht. Damit kenne ich mich allerdings gar nicht aus und hoffe, mich da auch nicht einfinden zu müssen, falls irgendwie möglich ^^


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • nicht auch in der .php Datei, die du per ajax aufrufst?

    Weil ich dann zwei verschiedene Intsanzen der Klasse habe, was bedeutet, wenn in der index.php eine Funktion aufgerufen wird, die z.B. eine Variable verändert o.Ä., weiß die neue Instanz davon ja nichts, oder irre ich mich da?


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Die neue Instanz ist ja auch nur beim Aufruf da, da sie dann wieder zerstört wird, wenn du der AJAX Aufruf fertig ist.
    Ich verstehe nicht so ganz wieso, du das so machen möchtest.
    Du könntest mit serialize und unserialize arbeiten, aber dies würde dazu führen, dass man Daten verfälschen könnte durch den AJAX Aufruf. ( Sofern der serializierte Wert mit übergeben werden würde )


    //edit.


    http://php.net/manual/de/function.serialize.php
    http://php.net/manual/de/function.unserialize.php
    Hier auch ein Beispiel:
    http://php.net/manual/de/language.oop5.serialization.php

  • Also ich weiß nicht genau, ob ich mein Vorhaben verständlich beschrieben kriege, ich versuche es aber mal an einem Beispiel.
    Stell dir vor, du hast ein Schachbrett, die Klasse ist nun über die Funktionen in der Lage, die einzelnen Figuren zu bewegen und muss sich demnach auch die neue Position der Figur merken.
    Da ich das Ganze gerne über Javascript machen möchte, um nicht bei jeder Bewegung die Seite neu laden zu müssen (was ich einfach unästhetisch finde), muss ich der AJAX Seite ja irgendwie vermitteln
    "Hey, die und die Figur wurde bereits da und da hin bewegt und steht schon ganz woanders"


    Ich hoffe, das verdeutlicht mein Vorhaben etwas.


    // Edit: Serialize scheint dafür ja hervorragend geeignet zu sein, danke ^^


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • naja ich würde dafür json nehmen, json ist dafür dann wiederum besser geeignet und in php kriegst du json mit json_encode(); und json_decode(); En- bzw Decodet.

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • Also brauchst du auf der index.php bspw. keine Instanz dieser Klasse, da alle Bewegungen über AJAX laufen.


    So bei jedem Aufruf der php Datei durch AJAX setzt du die Position mittels dieser Klasse und speicherst in der $_SESSION, auf welchen Positionen die Figur gerade ist.
    Beim Instanzieren der Klasse, setzt du die Positionen von der $_SESSION aus.


    @Vorposter
    Wenn er aber die json strings über AJAX übergibt, kann man diese sehr leicht verfälschen.

  • Zitat

    getUser();" linkhref="'index.php?page=Thread&postID=1934684#post1934684'" class="wysiwygQuote container-4">naja ich würde dafür json nehmen, json ist dafür dann wiederum besser geeignet und in php kriegst du json mit json_encode(); und json_decode(); En- bzw Decodet.

    Da es nur für lokale Zwecke ist, ist mir die simpelste Lösung ehrlich gesagt die Liebste. Und serialize scheint ja offenbar genau das zu bieten, wonach ich suche


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'