2016-08-02 22 views
1

Guten Morgen! Ich habe zwei dynamisch erstellte Objekte mit Formularfeldern Werte. Sie sind Objektliterale, die wie folgt aussehen:wie man dynamisch erzeugtes Objekt in ein anderes Objekt eingefügt

var courses = {}; 
 
course['name'] = $('#course').val(); 
 
var students = {}; 
 
students['first'] = $('#first_name').val(); 
 
students['last'] = $('#last_name').val(); 
 
students['age'] = $('age').val();

Ich möchte sie in einem einzigen Objekt einfügen wörtlichen var person= {} ich brauche die beiden Objekte in einen, weil ich es stringify müssen und senden über Ajax zu meiner Prozessseite. Kannst du mir bitte Helfen?

Antwort

3

Sie können ein Objekt füllen anhängen, wie Sie es schaffen:

var persons = { 
    courses: { 
     name: $('#course').val(), 
    }, 
    students: { 
     name: $('#first_name').val(), 
     last: $('#last_name').val(), 
     age: $('#age').val(), 
    }, 
}; 

Wenn Sie die bereits vorhandenen Objekte verwenden möchten, können Sie dies tun:

var persons = { 
    courses: courses, 
    students: students, 
}; 
+0

Vielen Dank. Bitte ich würde gerne wissen, ob es automatisch neue Objekte mit neuen Werten erstellt oder ob ich es anders machen soll? – princesse

2

Sie ein Objekt mit den zwei Objekten wie erstellen:

var data = {courses:courses,students:students}; 

oder Sie können einen zur anderen

students['courses'] = courses; 
1

Und was ist das Problem? Platzieren Sie diese Objekte einfach in Ihr Objekt und dann können Sie sie z. JSON und über Ajax senden:

var person = {} 
person.course = {}; 
person.student = {}; 

person.course['name'] = "Course 1"; 
person.student['first'] = "Vasya"; 
person.student['last'] = "Pupkin"; 
person.student['age'] = "26"; 

Wenn Sie mehrere Studenten wollen, sollten Sie arrays verwenden. Hier haben wir ein Array mit 3 Objekte erstellen, jeweils ein Student:

var person = {} 
person.course = {}; 
person.students = [{},{},{}]; 

person.course['name'] = "Course 1"; 
person.students[0]['first'] = "Vasya"; 
person.students[0]['last'] = "Pupkin"; 
person.students[0]['age'] = "26"; 

person.students[1]['first'] = "Petya"; 
person.students[1]['last'] = "Vasechkin"; 
person.students[1]['age'] = "30"; 

person.students[2]['first'] = "Vasiliy"; 
person.students[2]['last'] = "Alibabaevich"; 
person.students[2]['age'] = "40"; 

Sie können das gleiche tun mit Kurse.

Aber in diesem Fall ist der Name Person für das Objekt, das alle diese Daten ein wenig verwirrend enthält, weil es mehrere Studenten enthält. Sie sollten sinnvolle Namen für Ihre Variablen angeben.

+0

Wenn ich die Objekte auf diese Weise erstelle, enthält das endgültige Objekt nur die ersten beiden Objekte. Ich möchte viele Objekte (Studenten) mit der gleichen Struktur, aber mit unterschiedlichen Werten erstellen. Ich weiß nicht, wie ich alle meine Schüler auf einmal erstellen und in das endgültige Objekt einfügen kann, das ich stringiere und sende. Kannst du mir bitte Helfen? – princesse

Verwandte Themen