зависимые SELECT

Discussion in 'Программирование' started by Legion495, May 29, 2008.

  1. Offline

    Legion495 Недавно здесь

    Joined:
    Aug 30, 2007
    Messages:
    21
    Likes Received:
    0
    Gender:
    Male
    Всем привет.
    вопрос поставил компонент autoexp и решил не много изменить его например при выборе марки авто в нем автоматом выдается список моделей хотел добавить что бы при выборе модели в другом спике выдавался список модификаций для данной модели. нашел в файле часть кода php который формирует javascrit обрабатывающий действия над селектами. на его основе добавил такой же код для выбора модификации вроде работает но очень криво при выборе вольвы S80 выдает модификацию для ВАЗ 21099 и при чем везже показывает ее. помогите понять в чем проблемма.
    вот кусок кода по выбору модификации

    Код (PHP):
    1. echo "<script language=\"JavaScript\">\r\n"; //type=\"text/javascript\"
    2. echo "var modi = new Array();\r\n";
    3. echo "var modi_id = new Array();\r\n";
    4. echo "modi[0] = [\"select\"];\r\n";
    5. echo "modi_id[0] = [\"\"];\r\n";
    6. $j = 0;
    7. foreach($models as $key1)
    8. {
    9. $strs = "modi[".$j."]=[";
    10. $str2s = "modi_id[".$j."]=[";
    11. $database->setQuery("SELECT id, modi_id, name FROM #__autoexp_modi WHERE published = '1' AND id = '".$key1->id."'");
    12. $modi = $database->loadObjectList();
    13. foreach($modi as $key3)//for($f = 0; $f < count($s_models)-1; $f++)
    14. {
    15. $strs .= "\"".$key3->name ."\", ";
    16. $str2s .= "\"".$key3->id ."\", ";
    17. }
    18. if(substr($strs, strlen($strs) -2, 2) == ", ")
    19. {
    20. $strs = substr($strs, 0, strlen($strs) -2);
    21. }
    22. $strs .= "];\r\n";
    23. $str2s .= "];\r\n";
    24. echo $strs;
    25. echo $str2s;
    26. $j++;
    27. }
    28. //echo "var modellist = document.form.usr_model;\r\n";
    29. echo "var modilist = document.form.usr_modi;\r\n";
    30. echo "modilist.options[0] = new Option(modi[0][0], 0);\r\n";
    31. //echo "modellist.options[0] = new Option(models[0][0], 0);\r\n";
    32. $method_update = "function update_modi(selectedgroup)\r\n";
    33. $method_update .= "{\r\n";
    34. //$method_update .= "alert('go..go..go..' + selectedgroup);\r\n";
    35. $method_update .= "modilist.options.length = 0;\r\n";
    36. $method_update .= "if(selectedgroup > 0)\r\n";
    37. $method_update .= "{\r\n";
    38. $method_update .= "for(i = 0; i <= modi[selectedgroup].length; i++)\r\n";
    39. $method_update .= "{\r\n";
    40. $method_update .= "if( i == 0)\r\n";
    41. $method_update .= "modilist.options[modilist.options.length] = new Option(modi[0][0], 0);\r\n else \r\n";
    42. $method_update .= "modilist.options[modilist.options.length] = new Option(modi[selectedgroup][i-1],";
    43. $method_update .= " modi_id[selectedgroup][i-1]);\r\n";
    44. $method_update .= "}\r\n";
    45. $method_update .= "}\r\n";
    46. $method_update .= "if(selectedgroup == 0){\r\n";
    47. $method_update .= "modilist.options[modilist.options.length] = new Option(modi[0][0], 0);\r\n";
    48. $method_update .= "}\r\n";
    49. $method_update .= "}\r\n";
    50. echo $method_update;
    51. echo "</script>\r\n";


    нужны еще какие либо данные?
     
  2.  

Share This Page

Loading...