Доброго времени суток. Помогите пожалуйста доработать код. Я в php не очень сильно разбираюсь. Хотелось бы, чтобы весь выбор проходил на одной странице, а не на трех как в этом коде. Выбор категории(select1)--->Марка(select2)---Модель(select3). Вот примерно так. У меня получилось это сделать на яве, но select'ы были не зависящие.... Спасибо за внимание. http://files.mail.ru/LY2DCS сам код
Автор, смотреть 103.2 КБ каши из php, js и html удовольствие сомнительное может как-то приведешь свой исходник в порядок
я не прошу читать весь код. там только маленький кусочек нада подправить. PHP: /*************************************** * Функция показа списка категорий * трансопртных средств при создании * нового объявления ***************************************/ function chooseCategory( $categories, $link) { global $Itemid, $pageclass_sfx, $my; $task = mosGetParam( $_REQUEST, 'task', ''); ?> <form name="adminForm" action="<?php echo sefRelToAbs("index.php?option=com_autobb$link");?>" method="post"> <table class="contentpaneopen<?php echo $pageclass_sfx;?>" id="selectCategoryForm"> <tr><th colspan="2" class="componentheading"><?php echo _AUTOBB_SELECTCATEGORYFORM_PAGETITLE;?></th></tr> <?php ?> <?php if ($task = "searchPage") { $i = 2; foreach( $categories as $row ) { echo '<tr class="sectiontableentry'.($i).'"><td width="20" align="center"><input type="radio" name="category" value="'.$row->id.'" /></td><td><a href="'.sefRelToAbs("index.php?option=com_autobb&category=".$row->id."$link").'">'.$row->title.'</a></td></tr>'; $i = 3 - $i; } } else if ( $task = "add" ){ $i = 2; foreach( $categories as $row ) { if ($my->id==0 && $row->allow_guestpost==0) { } else { echo '<tr class="sectiontableentry'.($i).'"><td width="20" align="center"><input type="radio" name="category" value="'.$row->id.'" /></td><td><a href="'.sefRelToAbs("index.php?option=com_autobb&task=add&step=2&Itemid=$Itemid").'">'.$row->title.'</a></td></tr>'; $i = 3 - $i; } } unset($i); } ?> </table> <input type="submit" class="button" value="<?php echo _AUTOBB_SELECTCATEGORYFORM_BUTTONS_NEXT;?>" /> </form> и вот вторая часть функции. я хотел сделать чтобы они были селектами и второй зависил от выбора первого PHP: /*************************************** * Функция показа списка марок * автомобилей для выбора перед созданием * нового объявления ***************************************/ function chooseVendor( $vendors, $link ) { global $Itemid, $pageclass_sfx; $cols = 4; ?> <table class="contentpaneopen<?php echo $pageclass_sfx;?>" id="selectVendorForm"> <tr><th colspan="<?php echo $cols;?>" class="componentheading"><?php echo _AUTOBB_SELECTVENDORFORM_PAGETITLE;?></th></tr> <?php $i = 0; //индекс элемента $msg $n = sizeof($vendors); $row_cnt = ceil($n/$cols); $width = intval(100/$cols); while( $i<$row_cnt ) { echo "<tr>"; $index = 0; for($c=0; $c<$cols && $index<$n && !( ( $i==$row_cnt-1 ) && $n%$cols && ( $c>=$n%$cols ) ); ++$c) { $index = $i+$c*$row_cnt - ( $c>=$n%$cols && $n%$cols ? ( $c-$n%$cols ) : 0 ); $itemid_ = $vendors[$index]->itemid ? $vendors[$index]->itemid : $Itemid; echo '<td width="'.$width.'%"><a href="'.sefRelToAbs("index.php?option=com_autobb&v=".$vendors[$index]->id."&Itemid=$itemid_".$link).'">'.$vendors[$index]->title.'</a></td>'; } for( ; $c<$cols; $c++ ) { echo '<td width="'.$width.'%"> </td>'; } ++$i; echo "</tr>\n"; } echo '</table>'; unset($cols, $n, $i, $row_cnt, $width, $index);
используйте ajax на onchange каждого селекта навесить фукцию, которая будет обращаться на сервер и возвращать содержимое для остальных селектов. как-то так