> 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