hello,

i have a mysql database which i use a php script to search and display results with fields make, model, price, year and would like to add extra functionality with presumably javascript to add a drop down form field as when a particular make is selected from the list then it auto displays the relevant models only for that make.

help appreciated !

pabzzmike

Recommended Answers

All 2 Replies

hello,

i have a mysql database which i use a php script to search and display results with fields make, model, price, year and would like to add extra functionality with presumably javascript to add a drop down form field as when a particular make is selected from the list then it auto displays the relevant models only for that make.

help appreciated !

pabzzmike

<?php

//from your  2 resultsets containing the models & makes 
//create a models array for each make
$models = array();
while($makerow = mysql_fetch_assoc($makeresultset)){
    $j = 0;
    while($row = mysql_fetch_assoc($modelresultset)){
           if($row['make_name'] == $makerow['make_name'])
                $models[$j++] = "'".$row['model_name']."'";
    }
}

//joiining the array items to form a string separated by commas
//overally we create an array of such strings
$newModels = array();
for($i=0; $i<count($models); $++){
       $newModels[$i] = implode(", ", $models[$i]);
}

//initialising the javascript array
$modelString = "" ;
for($i=0; $i<count($newModels); $++){
       $modelString .= "modelArray[$i] = $newModels[$i]; " ;
}

echo "
  <script language=javascript>
    function fillArea(){
      var modelArray = new Array();
      $modelString
     var value = document.getElementById('make').value;
     var dest = document.getElementById('output');
     switch(value){
        case '1': dest.innerHTML = 'make 1 stuff' ; break;//output the modelArry[1] items here
        case 2':dest.innerHTML ='make 2 stuff'; break;//output the modelArry[2] items here
        case 'n': dest.innerHTML ='make 3 stuff'; break;//output the modelArry[n] items here
     }
  </script>
     "
?>
<form>
  <select id=make onchange=fillArea()>
    <option value='1'>Make 1</option>
    <option value='2'>Make 2</option>
    <option value='n'>Make 3</option>
  </select>
<form>
<div id=output>
</div>

Not revised - though that's the idea i usually use !!

code looking fine. try it.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.