Изменить корзину php для поддержки нескольких выпадающих меню - PullRequest
0 голосов
/ 18 мая 2010

У меня есть скрипт корзины покупок, который я пытаюсь изменить для поддержки выбора нескольких товаров. Как и сейчас, покупатель может выбрать товар из единого выпадающего меню. Теперь я хотел бы добавить несколько выпадающих меню (все заполнены одинаковыми параметрами).

Вот php, который выводит выпадающее меню:

if($eshopoptions['options_num']>1){
            $opt=$eshopoptions['options_num'];
            $replace.="\n".'<label for="eopt'.$theid.'"><select id="eopt'.$theid.'" name="option">';
            for($i=1;$i<=$opt;$i++){
                $option=$eshop_product['products'][$i]['option'];
                $price=$eshop_product['products'][$i]['price'];
                if($option!=''){
                    if($price!='0.00')
                        $replace.='<option value="'.$i.'">'.stripslashes(esc_attr($option)).' @ '.sprintf( _c('%1$s%2$s|1-currency symbol 2-amount','eshop'), $currsymbol, number_format($price,2)).'</option>'."\n";
                    else
                        $replace.='<option value="'.$i.'">'.stripslashes(esc_attr($option)).'</option>'."\n";
                }


            }

Есть ли какой-нибудь действительно простой способ заставить код выводить меню, скажем, 3 раза вместо одного?

1 Ответ

0 голосов
/ 18 мая 2010

Если вам действительно не нужна избыточность, вы можете разрешить пользователям выбирать несколько вариантов, добавляя атрибуты множественного размера и (необязательно) размера в тег выбора:

if($eshopoptions['options_num']>1){
        $opt=$eshopoptions['options_num'];
        $replace.="\n".'<label for="eopt'.$theid.'"><select id="eopt'.$theid.'" name="option" multiple="multiple" size="'.$opt.'">';
        for($i=1;$i<=$opt;$i++){
            $option=$eshop_product['products'][$i]['option'];
            $price=$eshop_product['products'][$i]['price'];
            if($option!=''){
                if($price!='0.00')
                    $replace.='<option value="'.$i.'">'.stripslashes(esc_attr($option)).' @ '.sprintf( _c('%1$s%2$s|1-currency symbol 2-amount','eshop'), $currsymbol, number_format($price,2)).'</option>'."\n";
                else
                    $replace.='<option value="'.$i.'">'.stripslashes(esc_attr($option)).'</option>'."\n";
            }


        }
...