Codeigniter - array von json-Objekten in der post
In fire-bug, den ich meine jquery-post Anfrage-Parameter, wie dies
adults 1
applicants[] [object Object]
attendees 1
children 0
In diesem post-request das array mit dem Namen Bewerber enthält json-Objekt, das ich will, ti Durchlaufen und pull-out-Werte in meinem codeigniter-controller. Der json-string kann so Aussehen
({attendees:"2",
adults:"2",
children:"0",
grptype:"2",
'applicants[]':[{firstname:"John", lastname:"Doe", age:"33", allergies:"true", diabetic:"true", lactose:"false", note:"nuts"}, {firstname:"Jane", lastname:"Doe", age:"34", allergies:"true", diabetic:"false", lactose:"false", note:"pollen"}]
})
Blick auf die Antragsteller[] oben, sehe ich eine info für zwei Personen als json-Objekt. Ich bin nicht sicher, wie der Zugriff auf die Daten in meinem controller. sehen Sie diese
$applicants = $this->input->post('applicants');
$this->output->append_output("<br/>Here: " . $applicants[0].firstname );
Ich dachte $Bewerber[0] woild beziehen sich auf das json-Objekt, und ich konnte nur pull-outs Werte auf Anfrage. Nicht sicher, hat ich falsch mache. Danke Jungs.
BEARBEITEN
Also ich habe meinen json und es sieht so aus
adults 2
applicants[] {firstname:"John", lastname:"Doe", age:"23", allergies:"true", diabetic:"true", lactose:"false", note:"nuts"}
applicants[] {firstname:"Jane", lastname:"Doe", age:"23", allergies:"false", diabetic:"false", lactose:"false", note:""}
attendees 2
children 0
Nun ich bin noch immer die Fehlermeldung
**Message: json_decode() expects parameter 1 to be string, array given**
Irgendwelche Ideen ?
EDIT 2
Ok mu Daten jetzt liiks wie diese
adults 1
applicants[] {"firstname": "John", "lastname": "Doe", "age": "34", "allergies": "true", "diabetic": "true", "lactose": "false", "note": "nuts"}
attendees 1
children 0
In der controller-id hat das
$applications = $this->input->post('applicants');
foreach ( $applications as $item)
{
$item = json_decode($item, true);
$this->output->append_output(print_r($item));
}
Dies ist das Ergebnis, dass die Logik
Array
(
[firstname] => John
[lastname] => Doe
[age] => 34
[allergies] => true
[diabetic] => true
[lactose] => false
[note] => nuts
)
Nicht sicher, was ich falsch mache, egal was ich mache, um den Zugriff auf die dater bekomme ich eine Fehlermeldung, um den Effekt, dass ich nicht auf Sie zugreifen wie. Wie ziehe ich die Werte ?
- Sehen Sie
[object Object]
in der POST, bedeutet, dass ist genau das, was wird an den server geschickt werden - ein string, der[object Object]
. Wie sind Sie mit dem erstellen der post-Daten? - Ich habe zwei Formulare in einer widard und vor Einreichen, ich erstelle json für jedes Formular, und führen Sie die json-Objekte mit jquery erweitern(). Dann sende ich mit jquert $.post(bla bla bla). Sind t=Sie Spruchs zu senden accress als string und nicht als Objekt ?
- Ja, Sie sollten konvertieren javascript-Objekt zu einem JSON-string und erst dann zu senden, dass der string anstelle. Dann decodieren des JSON-string auf dem server als @Scheich Herra hingewiesen.
- Kann nicht glauben, ich bin so dumm, ich verwendet, $Element['Vorname'], ziehen Sie die Wert . Danke Jungs für die Führung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Sie zu entschlüsseln auf dem server mit
So, es wird ein assoziatives array, und Sie können es verwenden, wie ein
array
ohne das zweite argument (true) in json_decode diejson
umgewandelt werden, zu einem Objekt. Bis Sie Sie entschlüsseln, es ist nur einestring
(json/java script object notation
string).Update:, Da es bereits ein array von Objekten, dann brauchen Sie nicht zu verwenden
json_decode
einfach Schleife das array in Ihremview
wieNach dem edit 2 sollte es sein, den Zugriff als array
json_decode
, es ist bereits ein array von Objekten, nur Schleife.versuchen, diese plz
oder