2011-07-23 5 views
9

Próbuję dowiedzieć się, jak dodać opcję wyłączoną w moim menu rozwijanym, przy użyciu codeIgniter. Nowość w CI i próbowałem trochę googlować, ale nie mogłem znaleźć odpowiedzi.Dodawanie wyłączonej opcji w codeigniter form_dropdown

Mój kod na liście rozwijanej wygląda następująco:

echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0'); 

To daje mi listę rozwijaną z moich opcji ze zmiennej $ kategoriach, z „Wybierz kategorię ...” (wartość 0) na wierzchu . Jak mogę wyłączyć pierwszy? Wiem, jak wybrać konkretny, który mam tutaj ustawić.

Czy ktoś może mi pomóc? Dzięki

Odpowiedz

-1

Z instrukcji CI na http://codeigniter.com/user_guide/helpers/form_helper.html:

Jeśli chciałbyś otwarcie zawierać dodatkowe dane, jak atrybut id lub JavaScript, można przekazać je jako ciąg w czwartym parametrem:

Więc ty się kod:

echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0', 'disabled="disabled"'); 

Jednakże, chyba że jesteś fanatykiem PHP lub używasz ochronę CSRF poprzez form helper Po prostu sam wypiszesz swój formularz HTML. Jest to ta sama ilość tekstu i używasz mniej funkcji.

+2

Dziękuję za odpowiedź. Dodanie "disabled =" wyłączone "" do końca powoduje wyłączenie całej listy wyboru. Chcę tylko, aby pierwsza opcja (wartość 0) została wyłączona, abyś nie mógł wybrać opcji "Wybierz kategorię ...". Tak, może powinienem napisać sam formularz, chyba że jest na to rozwiązanie. – beholder

+0

Wypróbuj grupy opcji, ale nie są one widoczne, gdy zaznaczenie nie jest otwarte: http://www.w3schools.com/tags/tag_optgroup.asp – sqwk

+0

Wykonuję następujące czynności: Nie podaję pierwszej opcji wartości " 'i użyj biblioteki sprawdzania poprawności formularza, aby wybrać wymagane pole. – sqwk

0

Jeśli nadal chcesz używać funkcji form_helper, zawsze możesz rozszerzyć plik pomocnika i udostępnić tag "wyłącz". Utwórz MY_Form_helper.php i umieść go w podkatalogu pomocniczym, a następnie zdefiniuj funkcję form_dropdown w tym niestandardowym pomocniku, a następnie obejmie zachowanie pomocnika formularza.

1

Wiem, że to stary post, ale w obecnej wersji CI mogę zrobić małą sztuczkę (podobną do wtrysku sql), dołączając " disabled="disabled do kluczy opcji, którą chciałbym wyłączyć.

$categories['0'] = '(Select Category)'; 
$categories['1'] = 'Category 1'; 
$categories['2" disabled="disabled'] = 'Restricted Category'; 
$categories['3'] = 'Category 3'; 

echo form_dropdown('category', $categories, '0'); 

Nie jestem pewien, czy jest to problem z form_helper CI, ponieważ nie robi żadnej ucieczki lub odkażające funkcję dla rozwijanych klucz/wartość. W międzyczasie, aby być bezpiecznym, upewnij się, że klucze i wartości nie będą pochodzić z jakichkolwiek danych wprowadzanych przez użytkownika.

0

Jeśli masz kilka opcji statyczne tylko zmienna $ options może być prosty łańcuch zbyt zawierający opcje w formacie HTML, jak poniżej:

$options = " 
<option value=0 disabled>Select Category</option> 
<option value=1>Category 1</option> 
<option value=2>Category 2</option>"; 

echo form_dropdown('category', $options, '0'); 
1

Wystarczy dodać czwarty param dolarów dodatkowych do swojej listy rozwijanej jako ciąg znaków takich jak to 'disabled = wyłączone', jak wyjaśniono w CI Docs w https://codeigniter.com/user_guide/helpers/form_helper.html#available-functions

echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0', 'disabled=disabled'); 
+1

To powoduje, że '