Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak dodac nowa opcje do pola select w formularzu?
post 18.05.2004, 21:31:36
Post #1





Grupa:
Postów: 0
Pomógł:
Dołączył: --

Ostrzeżenie: (0%)
-----


a wiec sytuacja wyglada nastepujaco: mam w formularzu wielokrotnego select'a z jezykami obcymi (dodawanymi w ramach jednego z atrybutow jakiejs szkoly), select ten oferuje kilka jezykow ale jesli ktos stwierdzi ze takigo jezyka jaki chce dodac nie ma w liscie select'a - chce zeby mial mozliwosc dodania nowego jezyka do tej listy, wiem jak to zrobic (nowy formularz wpisujacy jezyk do bazy listy jezykow w bazie danych i odswiezenie strony z glownym formularzem zeby select na nowo odczytal liste jezykow) ale tylko jak wspomialem przez odswiezanie strony glownego formularza - a przez top utrate tych informacji ktore ktos wczesniej wpisal w inne jego pola.... czy ktos ma pomysl jak dodac nowa opcje do select'a bez utraty danych z innych pol? za wszelkie wskazowki z gory wielkie dzieki smile.gif
Go to the top of the page
+Quote Post
post 18.05.2004, 21:50:19
Post #2





Grupa:
Postów: 0
Pomógł:
Dołączył: --

Ostrzeżenie: (0%)
-----


Zapisz sobie pola selecta w pliku np. select.dat i oddziel jezyki np * , potem uzywajac explode() zrobisz tablice i petla for wyswietlisz.
Go to the top of the page
+Quote Post
cboot
post 18.05.2004, 22:23:06
Post #3





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

Ostrzeżenie: (0%)
-----


[php:1:d6aab2862f]<?php
if ( isset( $_POST['wyslij'] ) )
{
if ( $_POST['jezyk'] == "inny" )
{
mysql_query( "insert into jezyki ( nazwa ) values ( '".$_POST['nowy']."' )" ) or die( "Nie mogę dodać do bazy danych." );
$_POST['jezyk'] = $_POST['nowy'];
}

// tutaj akcje jakie ma wykonać już po wszystkim - przejście do innej strony, czy coś takiego

}
else // Instrukcje gdy formularz wczytywany jest po raz pierwszy
{
echo( "<form action="".$_SERVER['PHP_SELF']."" method="post"><select name="jezyk">" );
$nazwy_jezykow = mysql_query( "select nazwa from jezyki" ) or die("Nie mogę czytać z bazy danych.");
while ( $nazwa_jezyka = mysql_fetch_array( $nazwy_jezykow ) )
{
echo( "<option value="$nazwa_jezyka">$nazwa_jezyka</option>" );
}
echo( "<option value="inny">Inny język:</option></select>" );
echo( "<input type="text" name="nowy" /><input type="submit" name="wyslij" value="Wyślij" /></form>" );
}
?>[/php:1:d6aab2862f]
W tym przykładzie mamy w bazie danych tabelę jezyki, a kolumna nazwa w tej tabeli to rzecz jasna nazwy, które też pobieramy do formularza. W formularzu mamy selecta wczytującego poszczególne pozycje z bazy danych plus dodatkowa pozycja Inny język:, po wybraniu której jako nazwę zostanie wybrana nazwa z pola tekstowego obok, przy czy ta nowa nazwa zostanie dodana to tabeli jezyki. Wybrany język bez względu na to, czy jest on z listy, czy z pola tekstowego, ostatecznie znajdzie się w zmiennej $_POST['jezyk'].
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.09.2024 - 01:57