Edycja XML'a za pomocą formularza

0

Witam,
Mam następujący problem - mam plik XML,w ktorym jest dokument z zamówieniami.
Każda pozycja dokumentu ma taki sam znacznik <kod> (czyli nazwa towaru) i <ilosc> (ilosc)
KOD jak i ILOSC mają być mozliwe do edycji poprzez formularz w HTML-u.
Znalazłem juz kod w sieci, zedytowałem pod siebie i działa...z tym że w pliku XML takich pozycji jest np. 40, a w kodzie mam tylko dotyczące pierwszej pozycji
Dodatkowo pole KOD ma byc tylko wybierane z drop-down menu (bazę kodow mam w pliku txt,mogę mieć tez w innych). Dodatkowo przycisk wyślij ma zapisywać plik i od razu pobierać go na komputer.
czy mógłby mi ktoś pomóc i podać jak taki kod powinien wyglądać? Sam nie jestem w stanie tego ogarnąć...
Kod którym dysponuję:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
 <?php
 $xml = new DOMDocument('1.0', 'utf-8');
 $xml->formatOutput = true; 
 $xml->preserveWhiteSpace = false;
 $xml->load('orders.xml');

 //Get item Element
 $towar = $xml->getElementsByTagName('TOWAR')->item(0);
 $sztuk = $xml->getElementsByTagName('POZYCJA')->item(0); 


 //Load child elements
 $kod = $towar->getElementsByTagName('KOD')->item(0);
 $ilosc = $sztuk->getElementsByTagName('ILOSC')->item(0) ;

 //Replace old elements with new
 $towar->replaceChild($kod, $kod);
 $sztuk->replaceChild($ilosc, $ilosc);
 ?>

 <?php
 if (isset($_POST['submit']))
 {
$kod->nodeValue = $_POST['kod'];
$ilosc->nodeValue = $_POST['ilosc'];
htmlentities($xml->save('orders.xml'));

 }

 ?>

 <form method="POST" action=''>
  KOD <input type="text-name" value="<?php echo $kod->nodeValue  ?>" name="kod" />
  Ilosc  <input type="text-comment" value="<?php echo $ilosc->nodeValue  ?>"  name="ilosc"/>
 <input name="submit" type="submit" />
 </form>

TOWAR I POZYCJA to znaczniki-matki w których znajdują sie znaczniki <kod> i <ilosc>

Z góry dziękuje za pomoc.

0

http://php.net/manual/en/domdocument.getelementsbytagname.php

This function returns a new instance of class DOMNodeList containing all the elements with a given local tag name.

Więc sprawdzamy dokumentację DOMNodeList http://php.net/manual/en/class.domnodelist.php

W komentarzu widzimy:

$nodeList = $someDomDocument->getElementsbytagname('user');

foreach ($nodeList as $node) {
    echo $node->nodeValue;
}

Wskazówka: Iteruj po nodach zamiast pobierać tylko pierwszy.

0

Ok,działa,ale drugie pytanie - jak zrobić do tego formularz w HTML? bo ręcznie to by mi trochę zajęło...

1 użytkowników online, w tym zalogowanych: 0, gości: 1