Jestem w trakcie pisania skryptu do odczytu i modyfikacji pliczku xml.
Całość oparłem o pętlę foreach- pierwszy skrypt odczytuje i wyświetla oddzielne formularze do modyfikacji każdej komórki.
Treść pierwszego:
<? $xml = simplexml_load_file("test.xml"); foreach($xml->children() as $child) { echo "<form name=Edycja2 action=parser.php method=post><td><tr></tr><tr><td width=78><textarea rows=5 cols=30 name=" . $child->getName() . ">" . $child . "</textarea></td><td width=78><input type=submit value=Potwierdzam ></td></tr></form>"; } ?>
^ I tutaj żadnego problemu nie ma, wszystko działa jak powinno.
Drugi skrypt otrzymuje zmienną i modyfikuje komórkę.
<?php $xml = simplexml_load_file("test.xml"); foreach($xml->children() as $child){ $child = $_POST[$child->getName()]; $xml->children() = $child; foreach($xml->children() as $child) //Sprawdzam czy dokonał zmian. { } }} ?>
^w tym skrypcie mam problem. Wszystko działa jak powinno jeśli chodzi o odbiór zmiennej ( bo gdy usunę "()" w linijce
"$xml->children() = $child;", to wtedy przesłany wynik pokazuje się w nowej komórce (o nazwie children)), ale gdy chcę przypisać $child do children() to skrypt wywala błąd :
Fatal error: Can't use method return value in write context in D:\blablablabla\parser.php on line 7
Co robię źle??
Czy ktokolwiek jest w stanie udzielić jakiejkolwiek odpowiedzi? Nie wiem, może to bug php albo coś. Może źle się do tego zabieram. Szukałem wszędzie ale nigdzie nie ma rozwiązania.