Internet Commerce

Partners & Affiliates














Developer Channel

internet.com


Tutorials Home What's New Top Rated Submit myTutes Random!

Search Tutorials


Tutorials Tutorials » Dynamic_Content

Categories A Simple XML-Based Searchable Database
Author: Joachim Schnier | Website: http://www.cancerinform.net/ |

 
Page 9
«prev 1 2 3 4 5 6 7 8 9 10 11 next»

The Fla file: Actionscript for search engine

The first part of the search engine script is similar to the above script except that we don't need any arguments. We do not only search in one XML file but in two. The search is performed by first uploading the XML file and then looking for string matches.

//this is the function for the search engine
function searchModel() {
 var modelName;
 model = new XML();
 model.onLoad = newModel;
 model.ignoreWhite = true;
 model.load("fmodels.xml");
 function newModel() {
 for (var count01=0; count01<=models.childNodes.length; count01++) {
 if (this.childNodes[count01].nodeName.toLowerCase() == "models") {
 modelsDescryption = this.childNodes[count01];
 }
 }
 findMFModels(modelsDescryption);
}
 //here is a specific function for the search engine with the var myModel
function findMFModels(myModel) {
 var myModel;
 var modelName;
 for (var count02=0; count02<=myModel.childNodes.length; count02++) {
 //we are defining the var modelName here
 modelName = myModel.childNodes[count02].nodeName.toLowerCase();
 //here the string from the input textfield is compared
 //with the name of the childnodes
 if (searchWindow.toLowerCase() == modelName) {
 //if there is a match we do all this
 modelsDescryption = myModel.childNodes[count02].firstChild;
 InstanceName_0.text = modelsDescryption;
 headline = myModel.childNodes[count02].attributes.name;
 pic = myModel.childNodes[count02].attributes.photo;
 loadMovie(pic,"modelHolder");
 //if there is no match...
 //see below for special comment
 }else if (searchWindow.toLowerCase() !== headline.toLowerCase()){
 //we continue searching in another xml file, this can be done for many
 //xml files in a row
 searchMModel();
 }
 }
 }
}
//function for the second and last xml file in the search attempt
function searchMModel() {
 var modelName;
 model = new XML();
 model.onLoad = newModel;
 model.ignoreWhite = true;
 model.load("mmodels.xml");
 function newModel() {
 for (var count01=0; count01<=models.childNodes.length; count01++) {
 if (this.childNodes[count01].nodeName.toLowerCase() == "models") {
 modelsDescryption = this.childNodes[count01];
 }
 }
 findMaleModels(modelsDescryption);
}
function findMaleModels(myModel) {
 var myModel;
 var modelName;
 for (var count02=0; count02<=myModel.childNodes.length; count02++) {
 modelName = myModel.childNodes[count02].nodeName.toLowerCase();
 //if there is a match we do all this
 if (searchWindow.toLowerCase() == modelName) {
 modelsDescryption = myModel.childNodes[count02].firstChild;
 InstanceName_0.text = modelsDescryption;
 headline = myModel.childNodes[count02].attributes.name;
 pic = myModel.childNodes[count02].attributes.photo;
 loadMovie(pic,"modelHolder");
 //if here is also no match...
 }else if (searchWindow.toLowerCase() !== headline.toLowerCase()){
 //we give up and tell there was no match
 headline = "";
 InstanceName_0.text = "Sorry, this model is not in our database.";
 loadMovie("agency.swf","modelHolder");
 }
 }
 }
}
special comment: by some reason if we write here
}else if (searchWindow.toLowerCase() !== modelName){
which we should imagine to be the correct syntax instead of
}else if (searchWindow.toLowerCase() !== headline.toLowerCase()){
we end up always with a false statement even the name was correct. Therefore, I recommend to always add a name attribute and then as in this case use it for the comparison

«prev 1 2 3 4 5 6 7 8 9 10 11 next»

» Level Intermediate

Added: : 2002-07-05
Rating: 8.30 Votes: 140
Hits: 3850
» Author
The author is a scientist working in cancer research.
» Download
Download the files used in this tutorial.
Download (209 kb)
Get conversion and unzipping tools for PC and Mac here!

» Forums
More help? Search our boards for quick answers!

Please rate this tutorial, 10 is the top rating, you can also click the comments link to read/write a review.
10 9 8 7 6 5 4 3 2 1
Read or Post Comments
 
   
 


The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers