Dodatkowe pola formularza nie przekazują zmiennych
Wyniki 1 do 7 z 7

Temat: Dodatkowe pola formularza nie przekazują zmiennych

  1. #1
    Nowicjusz
    Dołączył
    09-01-2006
    Wpisy
    21
    Punkty
    10

    Domyślny Dodatkowe pola formularza nie przekazują zmiennych

    Witam serdecznie!

    Przyznam szczerze, że moje zderzenie z CMS-ami nastąpiło tydzień temu i jeszcze dochodzę do siebie... po prostu Joomla mnie zauroczyła. Jej fantastyczna funkcjonalność to jedno, wyrzucenie mnie na głębsze wody programowania to drugie. Zmuszony jestem do jej drobnych modyfikacji i pierwsza kłoda pod nogami.

    Muszę dodać kilka nowych pól do rejestracji użytkownika (telefon, województwo, itp.), dodałem kolumny w bazie danych (tabela jos_users), dodałem pola formularza na stronie components\com_registration\registration.html.php (nazwy pól formularza zgodne z nazwami kolumn bazy danych) i niestety fiasko. Baza nie zapisuje danych z tych dodatkowych pól formularza. Sprawdzam w pliku components\com_registration\registration.php czy zmienna została przekazana i dopisany kod

    Kod:
    echo $row->telefon;
    nie zwraca nic, zmienna nie została przekazana. Dlaczego? Zmienne oryginalne tzn. name, username itd. przekazywane są bez problemu.

    Ratujcie... bom już cołkim zgłupł

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Opiekun forum
    Dołączył
    19-09-2005
    Wpisy
    3 743
    Punkty
    131

    Domyślny

    mozesz wkleic fragmenty gdzie zmieniles kod z podaniem linii?

  4. #3
    Nowicjusz
    Dołączył
    09-01-2006
    Wpisy
    21
    Punkty
    10

    Domyślny

    Tak obecnie wygląda funkcja registerForm z pliku registration.html.php

    Kod:
    function registerForm($option, $useractivation) {
    		?>
    		<script language="javascript" type="text/javascript">
    		function submitbutton() {
    			var form = document.mosForm;
    			var r = new RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-]", "i");
    
    			// do field validation
    			if (form.name.value == "") {
    				alert( "<?php echo html_entity_decode(_REGWARN_NAME);?>" );
    			} else if (form.username.value == "") {
    				alert( "<?php echo html_entity_decode(_REGWARN_UNAME);?>" );
    			} else if (r.exec(form.username.value) || form.username.value.length < 3) {
    				alert( "<?php printf( html_entity_decode(_VALID_AZ09), html_entity_decode(_PROMPT_UNAME), 2 );?>" );
    			} else if (form.email.value == "") {
    				alert( "<?php echo html_entity_decode(_REGWARN_MAIL);?>" );
    			} else if (form.password.value.length < 6) {
    				alert( "<?php echo html_entity_decode(_REGWARN_PASS);?>" );
    			} else if (form.password2.value == "") {
    				alert( "<?php echo html_entity_decode(_REGWARN_VPASS1);?>" );
    			} else if ((form.password.value != "") && (form.password.value != form.password2.value)){
    				alert( "<?php echo html_entity_decode(_REGWARN_VPASS2);?>" );
    			} else if (r.exec(form.password.value)) {
    				alert( "<?php printf( html_entity_decode(_VALID_AZ09), html_entity_decode(_REGISTER_PASS), 6 );?>" );
    			} else if (form.wojewodztwo.value == "wybierz") {
    				alert( "<?php echo html_entity_decode(_REGWARN_WOJEWODZTWO);?>" );
    			} else {
    				form.submit();
    			}
    		}
    		</script>
    		<form action="index.php" method="post" name="mosForm">
    
    		<div class="componentheading">
    			<?php echo _REGISTER_TITLE; ?>
    		</div>
    
    		<table class="contentpane" align="center">
    		<tr>
    			<td colspan="3"><?php echo _REGISTER_REQUIRED; ?></td>
    		</tr>
    		<tr>
    			<td width="30%">
    				<?php echo _REGISTER_NAME; ?> *
    			</td>
    		  	<td width="30%">
    		  		<input type="text" name="name" size="30" value="" class="inputbox" />
    		  	</td>
    		  	<td width="30%">
    				<?php echo _REGISTER_NAME_KOMENTARZ; ?>
    			</td>
    		</tr>
    		
    		<tr>
    			<td>
    				<?php echo _REGISTER_UNAME; ?> *
    			</td>
    			<td>
    				<input type="text" name="username" size="30" value="" class="inputbox" />
    			</td>
    			<td>
    				<?php echo _REGISTER_UNAME_KOMENTARZ; ?>
    			</td>
    		</tr>
    		
    		<tr>
    			<td>
    				<?php echo _REGISTER_PASS; ?> *
    			</td>
    		  	<td>
    		  		<input class="inputbox" type="password" name="password" size="30" value="" />
    		  	</td>
    		  	<td>
    				<?php echo _REGISTER_PASS_KOMENTARZ; ?>
    			</td>
    		</tr>
    		
    		<tr>
    			<td>
    				<?php echo _REGISTER_VPASS; ?> *
    			</td>
    			<td>
    				<input class="inputbox" type="password" name="password2" size="30" value="" />
    			</td>
    			<td>
    				
    			</td>
    		</tr>
    		
    		<tr>
    			<td>
    				<?php echo _REGISTER_EMAIL; ?> *
    			</td>
    			<td>
    				<input type="text" name="email" size="30" value="" class="inputbox" />
    			</td>
    			<td>
    				<?php echo _REGISTER_EMAIL_KOMENTARZ; ?>
    			</td>
    		</tr>
    		
    		<tr>
    			<td>
    				<?php echo _REGISTER_TEL_STACJON; ?>
    			</td>
    			<td>
    				<input type="text" name="kierunkowy" size="3" maxlength="2" class="inputbox" />&nbsp;<input type="text" name="tel_stacjon" size="8" maxlength="7" class="inputbox" />
    			
    				
    			</td>
    			<td>
    				<?php echo _REGISTER_TEL_STACJON_KOMENTARZ; ?>
    			</td>
    		</tr>
    		
    		<tr>
    			<td>
    				<?php echo _REGISTER_TEL_KOMOR; ?>
    			</td>
    			<td>
    				<input type="text" name="tel_komor" size="10" maxlength="9" class="inputbox" />
    			
    				
    			</td>
    			<td>
    				<?php echo _REGISTER_TEL_KOMOR_KOMENTARZ; ?>
    			</td>
    		</tr>
    		
    		<tr>
    			<td>
    				<?php echo _REGISTER_WOJEWODZTWO; ?>
    			</td>
    			<td>
    				<select size="1" name="wojewodztwo" class="inputbox">
    		<option selected>wybierz</option>
                <option>dolnośląskie</option>
                <option>kujawsko-pomorskie</option>
                <option>lubelskie</option>
                <option>lubuskie</option>
                <option>łódzkie</option>
                <option>małopolskie</option>
                <option>mazowieckie</option>
                <option>opolskie</option>
                <option>podkarpackie</option>
                <option>podlaskie</option>
                <option>pomorskie</option>
                <option>śląskie</option>
                <option>świętokrzyskie</option>
                <option>warmińsko-mazurskie</option>
                <option>wielkopolskie</option>
                <option>zachodniopomorskie</option>
              </select>
    			
    				
    			</td>
    			<td>
    				<?php echo _REGISTER_WOJEWODZTWO_KOMENTARZ; ?>
    			</td>
    		</tr>
    		
    		
    		
    		</table>
    
    		<input type="hidden" name="id" value="0" />
    		<input type="hidden" name="gid" value="0" />
    		<input type="hidden" name="useractivation" value="<?php echo $useractivation;?>" />
    		<input type="hidden" name="option" value="<?php echo $option; ?>" />
    		<input type="hidden" name="task" value="saveRegistration" />
    		<input type="button" value="<?php echo _BUTTON_SEND_REG; ?>" class="button" onclick="submitbutton()" />
    		</form>
    		<?php
    	}
    }
    ?>
    No i teraz przechodzę do pliku registration.php, dopisuję takie oto linijki w funkcji saveRegistration

    Kod:
    echo $row->tel_komor;
    	 echo $row->username;
    i oryginalne username wyświetla, a dodane tel_komor nie... i tak jest ze wszystkimi dodanymi polami formularza. Sama rejestracja przebiega bez problemu, nie wyświetla komunikatów błędu, a w bazie danych pojawia się nowy użytkownik - niestety z pustymi komórkami tel_komor, wojewodztwo itd. Zapisuje tylko oryginalne name, username, password itd.

  5. #4
    Nowicjusz
    Dołączył
    09-01-2006
    Wpisy
    21
    Punkty
    10

    Domyślny

    No chyba znalazłem przyczynę. W pliku joomla.php muszę rozszerzyć klasę mosUser o dodane kolumny tabeli...

  6. #5
    Debiutant
    Dołączył
    07-03-2006
    Wpisy
    6
    Punkty
    10

    Dodatkowe pola formularza

    fajny post, w prosty sposob mozna uniknac instalowania dodatkowych komponetow etc.

    dla uzupelnienia [ co prawdopodobnie jest juz przedawkowaniem informacji ;) ] mozna dodac ze dla wyswietlenia poszerzonej informacji w panelu adminstracyjnym trzeba dodac pola w admin.users.html.php

    thx

  7. #6
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    O ile wiem, dziala pod joomla
    15 dodatkowych pół, bez mieszania w kodzie, a potem przerabiania kolejnych skryptów w nowych wydaniach

    http://mamboxchange.com/projects/userextended/
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  8. #7
    Debiutant
    Dołączył
    07-03-2006
    Wpisy
    6
    Punkty
    10

    o polach formularza i ... dostepach

    sprawdze ten sam komponent o ktorym piszesz umieszczony na http://forge.joomla.org sypie sie straszliwie, zreszta na forum autor wypowiadal sie ze to wersja testowa, ale sprawdze dziekuje,

    mam pytanie na http://mambobrothers.com/ znalazlem komponent do zarzadzania grupami user i ich dostepami do poszczegolnych czesci portalu, ale kosztuje to 250 $ znasz moze podobny komponent ?

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •