Objekte von JavaScript an PHP übergeben

TomsToms

Grünschnabel
Moin zusammen,

um einige SQL-Queries auszuführen, möchte ich gerne ein paar JavaScript-Objekte per POST an PHP übergeben. Hab dazu auch schon ein wenig gegoogled, aber viel kam bisher nicht raus...
Oft wird geraten JSON zu nutzen (das zu übergebende Objekt ist übrigens ein JSONStore bzw. die Elemente des Stores), jedoch bekomm ich hier beim übergeben an PHP nur die ItemIDs der Objekte (0,1,2,...) nach PHP rüber.

Ich könnte natürlich versuchen jedes Attribut, welches ich für die SQL-Queries brauche einzeln zu übergeben, aber es müsste doch auch möglich sein, den kompletten Store, oder zumindest die Elemente des Stores zu übergeben.

Könnte mir hierzu jemand bitte den einen oder anderen Tipp geben, wie man so was noch handeln könnte, bzw. wie man allgemein Objekte von JavaScript an PHP übergeben könnte?

Vielen Dank schon mal im Voraus ;)

Gruß
TomsToms
 
Moin,

ja, eigentlich ist es mit JS-internen Mitteln möglich, die Methode dafür nennt sich toSource()

Allerdings kennt die der IE nicht, aber mit JSON geht das eigentlich gut....mit welcher Rückgabefunktion rufst du denn JSON.stringify auf? Und was für Attribute willst du da denn übergeben(vom Typ her)
 
Hoi,

ich probier mal das mit toSource() :)

JSON.stringify() nutze ich (bisher) nicht. Ich denke mal, die Objekte dürften vom Typ object sein. Zumindest bekomm ich beim Firebug die tatsächlichen Objekte (Daten des JSONStore) übermittelt, bei nem alert() bekomm ich nur das übliche [object Object].

Ich denke mal ein wenig Source-Code könnte vielleicht behilflich sein ;-)
so schauts bei mir momentan aus:
Code:
Ext.get('searchit').on('click', function(e) {
                http=new XMLHttpRequest();
                if (http!=null)
                {
                    var store = mystore;  // mystore is the JSON-Store-object                  
                    var items = store.data.items; // the (object-)items of the Store
                    var itemplus = serializeArray(items); // trying to serialize the items
                    http.open("POST","searchit.php",true);
                    http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                    http.send("items=" + itemplus); // transfers only the IDs of the items (0,1,2,...)
                }
            });

Nun möchte ich halt die kompletten Items des Stores als Objekt übergeben, so dass ich in PHP die Items dann einzeln auseinander nehmen kann und mir die Variablen aussuchen kann, die ich für meine Queries benötige.

Gruß
TomsToms
 
Hoi hoi,

das Problem hat sich erledigt. Hab mich dafür entschieden nur die IDs der Elemente als String zu übergeben und dann im PHP per preg_split ein Array draus zu machen :)

Wen es noch interessiert, hier mein JS-Code:

Code:
Ext.get('searchit').on('click', function(e) {
                http=new XMLHttpRequest();
                if (http!=null)
                {
                    var store = mystore;
                    var items = new Array();
                    var laenge = store.data.length;
                    for (var i = 0; i < laenge; i++) {
                        items[i] = store.data.items[i].data.id;                         
                    }                   
                    http.open("POST","searchit.php",true);
                    http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                    http.send("items=" + items);
                }
            });
 

Neue Beiträge

Zurück