Autor Zpráva
lolkohrad
Profil *
ahoj, nedari se mi pres POST odeslat a ulozit data do xml souboru,
kdyz to neposilam pres POST, tak to normalne funguje, ale pres formular to nemohu rozjet. Pomuze nekdo?

Kod:
<?php

  $doc = new DOMDocument();
  
  $doc->load('aaa.xml');
  
  
    $newitem = $doc->createElement('PRODUCTS');
    $doc->appendChild($newitem);
    
    function pridej($jmeno, $cena, $popis){
    $item = $GLOBALS['doc']->createElement('ITEM', '');
    $GLOBALS['newitem']->appendChild($item);
    
    
    $name = $GLOBALS['doc']->createElement('NAME', $jmeno);
    $item->appendChild($name);
    
    $price = $GLOBALS['doc']->createElement('PRICE', $cena);
    $item->appendChild($price);
    
    $description = $GLOBALS['doc']->createElement('DESCRIPTION', $popis);
    $item->appendChild($description);

    
    
if ($_POST){
  $jmeno = $_POST['jmeno']; 
  $cena = $_POST['cena']; 
  $popis = $_POST['popis']; 
  
  pridej($jmeno, $cena, $popis);

  print 'zapsano'.$doc->save('aaa.xml').' bytes of data';
  
  
 }
}  
 
  ?>
  
 Vlozit produkt<br />
   
   <form method="post">
                                       
   Jmeno<br />
   <input type="text" name="jmeno" /><br />
   Cena<br />
   <input type="text" name="cena" /><br />          
   Popis<br />
   <input type="text" name="popis" /><br />
   <input type="submit" value="Vlozit" />
   </form>
Chro
Profil
if ($_POST){... je obsaženo v definici funkce pridej, taktéž volání funkce pridej je v definici funkce pridej, musí to být mimo definici funkce pridej vyhrazené složenýma závorkama. Takže tu jednu } na konci skriptu dej před if ($_POST).
lolkohrad
Profil *
moc diky :D...psal jsem to rano ve 2 a tak uz jsem si nevsiml zavorek...tu chybu bych sam tezko hledal :D...diky moc
lolkohrad
Profil *
ahoj, mam ted problem s pridavanim produktu do XML soboru,
uspesne ho nahraji a vypisu do prohlizece, ale jen maximalne 2 polozky, pak se ty ostatni prepisou.
co delam spatne? Potreboval bych, aby se s kazdym odeslanim pridala polozka na konec seznamu.

diky

  function pridej($jmeno, $cena, $popis){
  
    $item = $GLOBALS['doc']->createElement('ITEM', '');
    $GLOBALS['doc']->appendChild($item);
    
    //$id = $GLOBALS['doc']->createElement('ID', $id);
    //$item->appendChild($id);
    
    $name = $GLOBALS['doc']->createElement('NAME', $jmeno);
    $item->appendChild($name);
    
    $price = $GLOBALS['doc']->createElement('PRICE', $cena);
    $item->appendChild($price);
    
    $description = $GLOBALS['doc']->createElement('DESCRIPTION', $popis);
    $item->appendChild($description);
 }
    
 
  //delete(NAME);  
  
  //nacteni XML
  $doc = new DOMDocument();
  $doc->load('aaa.xml');
      
if ($_POST){
  
  $jmeno = $_POST['jmeno']; 
  $cena = $_POST['cena']; 
  $popis = $_POST['popis']; 
  
  pridej($jmeno, $cena, $popis);

  $doc->save('aaa.xml');
  echo "uspesne pridano";
}



   
  
  $books = $doc->getElementsByTagName( "ITEM" );
  foreach( $books as $book )
  {
  //$ids = $book->getElementsByTagName( "ID" );
  //$id = $ids->item(0)->nodeValue;

  $prices = $book->getElementsByTagName( "PRICE" );
  $price = $prices->item(0)->nodeValue;
    
  $names = $book->getElementsByTagName( "NAME" );
  $name = $names->item(0)->nodeValue;
  
  $publishers = $book->getElementsByTagName( "DESCRIPTION" );
  $publisher = $publishers->item(0)->nodeValue;
  

  
  echo "<br>$name - $price - $publisher<br>";
  }

  
  ?>
  
 Vlozit produkt<br />
   
   <form method="post">
                                       
   Jmeno<br />
   <input type="text" name="jmeno" /><br />
   Cena<br />
   <input type="text" name="cena" /><br />          
   Popis<br />
   <input type="text" name="popis" /><br />
   <input type="submit" value="Vlozit" />
   </form>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: