> Hi all,
> 
> I'm trying to create some XML from PHP code to save data about customers, but 
> I found many problem and it doesn't work.
> 
> The class Customer is quite simple I put it right below
> 
> <?php
> 
> class customer {
>         var $name;
>         var $phone;
> 
>         function customer($name, $phone) {
>                 $this->name = $name;
>                 $this->phone = $phone;
>         }
> 
>         function getName() {
>                 return $name;
>         }
> 
>         function setName($name) {
>                 $this->name = $name;
>         }
> 
>         function getPhone() {
>                 return $phone;
>         }
> 
>         function setPhone($phone) {
>                 $this->phone = $phone;
>         }
> 
>         function addXMLCustomer($dom, $root) {
>                 $customer = $dom->createElement('customer');
> 
>                 $name_at = $dom->createAttribute('name');
>                 $customer->appendChild($name_at);
>                 $name_at_val = $dom->createTextNode($this->name);
>                 $name_at->appendChild($name_at_val);
> 
>                 $phone_at = $dom->createAttribute('phone');
>                 $customer->appendChild($phone_at);
>                 $phone_at_val = $dom->createTextNode($this->phone);
>                 $phone_at->appendChild($phone_at_val);
> 
>                 $root->appendChild($customer);
> 
>         }
> }
> 
> ?>
> 
> the main page is simply a little form asking to introduce a new customer.... 
> (the problem is not when you try to create the XML file for the first time, 
> but something on getElementsByTagName, that is when you try to reopen the 
> file... for example for a second customer....
> 
> <html>
> <head>
> <title>MCare administration</title>
> <script type="text/javascript" 
> src="script/scriptaculous-js-1.8.2/prototype.js"></script>
> <script type="text/javascript" 
> src="script/scriptaculous-js-1.8.2/scriptaculous.js"></script>
> </head>
> <?php
> // require class file
> require("customer.php");
> 
> $xmlfile = "C:/Users/Maurizio/Desktop/customers.xml";
> 
> if(!file_exists($xmlfile)) {
>         $doc = new DOMDocument('1.0', 'iso-8859-1');
>         $root = $doc->createElement('customers');
>         $doc->appendChild($root);
> 
>         if (isset($_GET['add_customer']) && isset($_GET['new_customer_name'])
>                 && isset($_GET['new_customer_phone'])) {
>                 $c = new customer($_GET['new_customer_name'], 
> $_GET['new_customer_phone']);
>                 $c->addXMLCustomer($doc, $root);
>         }
>         $doc->save($xmlfile);
> }
> else {
>         $doc = new DOMDocument();
>         $doc->load($xmlfile);
>         $root = $doc->getElementsByTagName("customers");
>         if (isset($_GET['add_customer']) && isset($_GET['new_customer_name'])
>                 && isset($_GET['new_customer_phone'])) {
>                 $c = new customer($_GET['new_customer_name'], 
> $_GET['new_customer_phone']);
>                 $c->addXMLCustomer($doc, $root);
>         }
>         $doc->save($xmlfile);
> }
> ?>
> <body>
> <div>
> <fieldset><legend>Add new customer</legend>
> <form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
> <label for="new_customer_name">Name:</label>
> <input id="new_customer_name" name="new_customer_name" type="text" />
> <label for="new_customer_phone">Phone:</label>
> <input id="new_customer_phone" name="new_customer_phone" type="text" />
> <button id="add_customer" name="add_customer" type="submit">Add</button>
> </form>
> </fieldset>
> </div>
> </body>
> </html>
> 
> Any suggestions??

It looks to me that you are creating a new DOM object for the file
existing condition, but not loading the actual file into the object with
$doc->load() or similar. Consequently you are creating a new file with
single entry each time.
Also, I wonder why your new DOMDocument()s have different parameters?
Wouldn't it be wise to make them the same to avoid possible problems?


> Thks
> Maurizio
> 
> --
> The information transmitted is intended for the person or entity to which it 
> is addressed and may contain confidential and/or privileged material. Any 
> review, retransmission, dissemination or other use of, or taking of any 
> action in reliance upon, this information by persons or entities other than 
> the intended recipient is prohibited. If you received this in error, please 
> contact the sender and delete the material from any computer.
> 
> -- 
> PHP Windows Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

--
Niel Archer
niel.archer (at) blueyonder.co.uk



-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to