XML-Creator Online

uBiK

Grünschnabel
aaalso ich habs geschaft einen xml-creator mit php zu basteln. (Pear)
inhalt der generierten xml:
Code:
  <?xml version="1.0" encoding="utf-8" ?> 
- <content>
- <auftrag>
  <client>CLIENT</client> 
  <comment>COMMENT</comment> 
  <image>/URL2/IMAGE.jpg</image> 
  </auftrag>
  </content>

Code im PHP:
PHP:
<?php 
require_once 'xmlmanager.php'; 
require_once '../HTML/QuickForm.php'; 

// Fetch the singleton instance of Config 
$Content = &ConfigManager::instance(); 

// Build a form with PEAR::HTML_QuickForm 
$Form = new HTML_QuickForm('labels_example', 'post'); 
$Form->addElement('text', 'client', 'Client'); 
$Form->addElement('text', 'comment', 'Comment'); 
$Form->addElement('text', 'image', 'Image-URL'); 
$Form->addElement('text', 'xmlname', 'XML-Filename');
$Form->addElement('submit', null, 'Create'); 


// If the form is valid update the configuration file 
if ($Form->validate()) { 
   $result = $Form->getSubmitValues(); 
   $Content->set('client',$result['client']); 
   $Content->set('comment',$result['comment']); 
   $Content->set('image',$result['image']); 
   if (ConfigManager::store()) { 
       echo "Successfully created <b>$xmlname</b><br>";
       echo "<a href=\"$xmlname\">Download XML-File</a>"; 
   } else { 
       echo "Error updating configuration"; 
   } 
} else { 
   echo 'Create new XML-File'; 
   $Form->display(); 
} 
?>

ich möchte nun aber mehr als nur einen "Auftrag" ausgeben. meine frage ist, kann ich ein einfaches "duplicate" oder so einbauen, um dann zu wählen wieviele "aufträge" man hat? im sinne eines dropdown menus oder so, was dann die "Forms" verdoppelt oder halt verfünfacht was auch immer. Also das es nachher in etwa so aussieht:
Code:
  <?xml version="1.0" encoding="utf-8" ?> 
- <content>
- <auftrag>
  <client>CLIENT</client> 
  <comment>COMMENT</comment> 
  <image>/URL2/IMAGE.jpg</image> 
  </auftrag>
- <auftrag>
  <client>CLIENT</client> 
  <comment>COMMENT2</comment> 
  <image>/URL2/IMAGE2.jpg</image> 
  </auftrag>
- <auftrag>
  <client>CLIENT</client> 
  <comment>COMMENT3</comment> 
  <image>/URL2/IMAGE3.jpg</image> 
  </auftrag>
  </content>

vielen dank für die hilfe.

cheers,
ubik
 
Du könntest eine Seite davorschalten und da auswählen wieviele Einträge du erzeugen willst. Dann auf der Folgeseite auf welcher das Formular zum eintragen steht mit einer for() Schleife entsprechend die gewählte anzahl der Eingabefelder erzeugen.

Allerdings musst du diesen Feldern dynamische Namen geben, ich würde einfach an den Namen den Inhalt der Variablen nehmen die bei der for() Schleife hochgezählt wird.

Und dann musst du natürlich an die 3. Seite, auf welche die einträge des Formulars in eine XML Datei geschrieben werden auch wieder die Anzahl der Einträge übergeben, kannst du ja z.B. über ein hidden Feld auf der vorherigen Seite machen, und dann wieder mit einer for() Schleife die entsprechende Anzahl an XML Einträgen erzeugen. Kannst dann ja wieder die Variable der for() Schleife benutzen um die dynamischen Namen der Eingabefelder zum auslesen zu erzeugen.

Gruß GalaxyWarrior
 
Zurück