hi neil, this is indeed a very helpful piece of code and advice.. thank you so much! if this took you 30 minutes to write, it would have taken me a day to learn XML, and start writing! this code looks complicated for a young programmer like me ;p.. i'll need time to read up on XML and get back to you again if i have queries about the codes..
you really helped cut my learning curve in XML and at the same time solve my client-server problem.. may you be blessed just like how your codes have blessed me! :o) thanx lots, Hwee Hwee ----- Original Message ----- From: "Neil Smth" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Thursday, November 20, 2003 4:02 AM Subject: Re: [PHP-DB] Read file > It's usually easier to show with an example : This took about 30 minutes to > write : > > Here's an XML file - copy and paste, and save as hotels.xml : > > <?xml version="1.0"?> > <hotels> > <hotel> > <id>1</id> > <name>Bangkok oriental</name> > <address>50 High Street, Kowloon</address> > <phone>+12 451 708 3282</phone> > </hotel> > <hotel> > <id>2</id> > <name>Hilton Marriott</name> > <address>2042 Michael Wood Street</address> > <phone>+44 238 9125467</phone> > </hotel> > <hotel> > <id>3</id> > <name>Swallow Royal</name> > <address>91-97 Royal Fort Crescent</address> > <phone>+01 1209 432 2345</phone> > </hotel> > </hotels> > > At 10:21 19/11/2003 +0000, you wrote: > > >Hi Neil, > > > >thank you so much for your advice! i have not programmed XML before so it > >will take me a while to learn it.. your suggestion sounds really fantastic, > >expecially the part when i don't even have to ask the users to direct me to > >the file that i need.. > > > >my problem, simply put will be: > >1) user has to enter details in a form > >2) when user enters HotelCode in one of the fields in the form, > >3) javascript must pass the value to PHP to search for the HotelName, > >HotelAddress, HotelTel etc.. > > Forget about PHP if you are doing this client side, you only need it to > process the updated records : > > >5) javascript place those values in the respective fields > >6) user continues to complete the form > > Here is a processing page which will populate the form using the XML data : > Save this in the same directory you placed the hotels.xml file; It will > work in IE5 as is : > > <html> > <head> > <title>Demo Hotel Loader</title> > </head> > > <body onload="populatelist()"> > <script language="javascript1.2"> > <!-- > oxmlDocument = new ActiveXObject("MSXML2.DOMDocument"); > oxmlDocument.load("hotels.xml"); > > function populatelist() { > var hotels=oxmlDocument.selectNodes("/hotels/hotel"); > if (hotels != null) { > d=document.forms["hotelupdate"].list; > d.length=0; > d[0]=new Option('--Please Select--','',true); > for (i=0;i<hotels.length;i++) { > d.length++; > d[i+1]=new Option(); > d[i+1].value=hotels[i].selectSingleNode("id").text; > d[i+1].text=hotels[i].selectSingleNode("name").text; > } > } > } > > function populatevalues() { > d=document.forms["hotelupdate"]; > // Get hotel ID # > v=d.list[d.list.selectedIndex].value; > // Use this to read the hotel/phone node having this hotel ID > field=oxmlDocument.selectSingleNode("/hotels/hotel[id='"+v+"']/phone"); > // Set form's phone field to the text of this node > d.phone.value=field.text; > // Now to read the hotel/address node having this hotel ID > field=oxmlDocument.selectSingleNode("/hotels/hotel[id='"+v+"']/address"); > // Set form's address field to the text of this node > d.address.value=field.text; > } > //--> > </script> > > <form name="hotelupdate" id="hotelupdate" action="post" > method="http://www.my-server.com/myurl.php" onsubmit="alert('This would > send these values to your website');return false;"> > <select name="list" id="list" onchange="populatevalues()"></select> Phone : > <input type="text" name="phone" id="phone" size="15" maxlength="24" /> > <br /> > <textarea name="address" id="address" rows="3" cols="40" > wrap="virtual"></textarea> > <br /> > <input type="submit" name="submit" id="submit" value="Send !" /> > </form> > > </body> > </html> > > You then need to write some PHP to accept the new record (you might give > the ID number from your database as the primary key). Writing out XML from > PHP works exactly the same as writing out HTML. You just fill in the blanks > with your data by running a query and printing out the values between the > tags, in a loop. > > Hope that helps - study the code and see if you can understand how it works. > Cheers - Neil. > > -- > PHP Database Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php