Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Zapis/ odczyt danych do Comboboxa, i związane z nim operacje
mikajlo
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

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


Witam,
Nie byłem w stanie zawrzeć wszystkiego w tytule tematu więc kilka słów odnośnie szczegółów..

Chciałbym zrobić na stronie taki 'mechanizm':
(IMG:http://oi49.tinypic.com/34qp5hv.jpg)

tj. po rejestracji użytkownika i np. przy pierwszym wejściu użytkownika do swojego panelu, owy user powinien mieć możliwość wybrania wartości z comboBoxa i zapisania jej lub wprowadzenia nowej wartości do textLine i zapisania jej . (na początku comboBox powinien być ustawiony na pustą wartość). Następnie użytkownik powinien wybrać sobie jakąś wartość z comboBoxa lub dodać własną o ile nie znajdzie porządanej na isniejącej juz liscie..

Akutalnie jestem na etapie, że po wprowadzeniu nowej wartości przez użytkownika jest ona zapisywana w odpowiedniej tabeli i "przypisywana" danej osobie.. Natomiast nie wiem za bardzo jak wykonać taki myk, że jak user już ustawi jakąś wartość to po wejściu do swojego panelu ma ona zostać 'automatycznie' ustawiona na comboBoxie.. (tzn. powinna być jakoś zczytywana z bazy informacja, że właśną tą wartość posiada user..)

Jak to u mnie wygląda od strony kodu:
(pewnie to dopiero zacząć całości wymaganego kodu..)

  1. <? $clubN= mysql_query("select nazwa_klubu from kluby"); ?>
  2. <form action="" method="POST">
  3. Wybierz klub z listy :
  4. <select name="club" id="club">
  5. <option value=""></option>
  6. <? while($res= mysql_fetch_assoc($clubN))
  7. {
  8. echo '<option value='.$res['nazwa_klubu'].'>'.$res['nazwa_klubu'].'</option>';
  9. }
  10. ?>
  11. </select><br />
  12. Dodaj nowy klub: <input type="text" name="club" id="club"/><br />
  13. <td><input type="submit" value="Zapisz"/></td>
  14. <td><input type="hidden" name="submitClub" value="1"/></td>
  15. </form>


  1. <?php
  2. if (!isset($_POST['submitClub']))
  3. {
  4. $GLOBALS['TEMPLATE']['content'] = $form;
  5. }
  6. else
  7. {
  8. $user->clubName = $_POST['club'];
  9. $user->insertClub();
  10. }
  11. ?>


Z góry dzięki a każde wskazówki (dotyczące temtu).. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Wskazówka (pseudokod):

If ($res['nazwa_klubu'] == wartosc usera z bazy ktora już ma) wowczas do option dopisz selected="selected"
Go to the top of the page
+Quote Post
mikajlo
post
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

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


@nospor - ok, w sumie fajnie mnie naprowadziłeś.. jeszcze delikatnie doszukałem klika rzeczy odnośnie zasotoswania możliwej składni php (bo tutaj mocno kuleje moja wiedza) i ten mechanizm działa (IMG:style_emoticons/default/smile.gif)

Ciągnąc jednak temat dalej chciałbym uzyskać następujący efekt.. Poprzednio pisałem, że na razie (na stałe) mam oprogramowany textLine, który dodaje nowy klub do bazy.. Teraz np. po ponownym wejściu do panelu w comboBoxie jest ustawiany odpowiedni item..

Natomaist brakuje mi następującej funkcjonalności
- jeżeli textLine jest pusty i z comboBoxa został wybrany pusty (domyślny) item to należy wyświetlić komunikat, że operacja zapisu jest niemożliwa
- jeżeli textLine jest pusty i z comboBoxa wybrano wartość należy tą wartość uaktualnić w bazie
- jeżeli textLine jest zapisany i comboBox ma inną wartość niż pusty to również powinien jakoś poinformować o takiej sytuacji lub jakoś tej sytuacji inaczej zaradzić (np. jesli jest jakaś wartość wybrana w comboBox to czyść textLine.. tylko nie wiem czy to jest możliwie łatwe do osiągnięcia..)

Dla przypomnienia mój kod na tę chwile wygląda tak:

  1. <?php
  2. if (!isset($_POST['submitClub']))
  3. {
  4. $GLOBALS['TEMPLATE']['content'] = $form;
  5. }
  6. else #jeśli wcisnięto przycisk zapisz..
  7. {
  8. $user->clubName = $_POST['club'];
  9. $user->insertClub();
  10. }
  11. ?>


Pewnie trzeba dodać jakieś if i warunki ale nie mogę znaleźć jakieś konkretnej wizji..
Proszę o podpowiedzi (wzorując się na odpowiedzi nospor'a) (bądź jeszcze dokładniej opisując jaki kod powinien zostać użyty.. (IMG:style_emoticons/default/smile.gif) )
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Natomaist brakuje mi następującej funkcjonalności
- jeżeli textLine jest pusty i z comboBoxa został wybrany pusty (domyślny) item to należy wyświetlić komunikat, że operacja zapisu jest niemożliwa
- jeżeli textLine jest pusty i z comboBoxa wybrano wartość należy tą wartość uaktualnić w bazie
- jeżeli textLine jest zapisany i comboBox ma inną wartość niż pusty to również powinien jakoś poinformować o takiej sytuacji lub jakoś tej sytuacji inaczej zaradzić (np. jesli jest jakaś wartość wybrana w comboBox to czyść textLine.. tylko nie wiem czy to jest możliwie łatwe do osiągnięcia..)

Sam właśnie tu napisałeś nam pseudokod. Czemu więc poprostu tego pseudokodu nie zamienisz na normalny kod jak zrobiłeś to z moim pseudokodem? Skoro za pierwszym razem poszło ci tak dobrze to i teraz nie powinno być większych problemów (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mikajlo
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

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


heh.. pewnie masz racje.. z tym, że jednak trochę "części" kodu by się przydały.. bo np. jak sprawdza się czy textLine jest pusty i czy został wybrany jakiś element z comboBoxa? A informacje przy zapisanie to ma się pojawiać w tzw. messageBoxie czy jakoś inaczej ? (jeśli tak, to jaką funkcje (kod) można zastosować?)

ps. dzisiaj dzień zleciał i praktycznie do tego nie usiadłem, ale już czuje że w/w przeze mnie informacje byłyby bardzo pomocne.. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
. bo np. jak sprawdza się czy textLine jest pusty i czy został wybrany jakiś element z comboBoxa?
No ale to są podstawy formularzy.
google-> php + formularz
Go to the top of the page
+Quote Post
mikajlo
post
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

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


@nospor - dzięk! W sumie nie pomyślałem wtedy, żeby szukać rozwiązania po wyszukiwaniu informacji o formularzach... (IMG:style_emoticons/default/facepalmxd.gif)
Poza tym przez dwa dni męczyłem się z głupim błędem przy wstawianiu value do option.. No ale w końcu sobie poradziłem..

Teraz miałbym kolejne dwa pytania.. Dla przypomnienia podam screen:
(IMG:http://oi49.tinypic.com/34qp5hv.jpg)

1) W sytuacji, że użytkownik chce zmienić klub i wybiera sobie nową wartość z comboBoxa, po przyciśnięciu zapisz wartość jest uaktualniana, ale w comboBoxie jest jeszcze stara wartość.. dopiero po odświeżeniu strony zostaje ustawiona nowa (właściwa) wartość.. (normalnie właściwą wartość na liście ustalam za pomocą funkcji która robi to co otrzymałem w ramach wskazówki: If ($res['nazwa_klubu'] == wartosc usera z bazy ktora już ma) wowczas do option dopisz selected="selected" ).
Próbowałem tą funkcję (jeszcze raz) wywołać bezpośrednio po uaktualnieniu informacji w bazie (czyli po przyciśnięciu zapisz) ale to nie chcę wtedy działać... Co można zrobić, aby bez odświeżania całej strony akutalna wartość została zaznaczona w ComboBoxie?

2) Odnosi się to do problemu o który pisałem wyżej a mianowicie o wyświetlaniu odpowiedniej informacji przy wypełnaniu danych na w/w screenie.. (if (coś) else (coś) ... ). Akutalnie działa to tak, że wyświetla się jakaś informacja w znacznikach <p> </p> i jest ona na "stałe" pokazywana na stronie.. Ja chciałbym uzyskać taki efekt, aby ta informacja po pojawieniu, znikała np. za 5 sekund.. Jak takie coś osiągnąć? (widziałem takie mechanizmy na różnych stronach.. ale może to działa na JavaScripcie, którego niestety też nie znam (IMG:style_emoticons/default/tongue.gif) Dlatego proszę o jakieś przykłady, z którymi ewentualnie mógbym powaliczyć o modyfikacje (IMG:style_emoticons/default/wink.gif) )

Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




ad1) Aktualizacja bazy ma się odbywać przed pobieraniem danych a nie po. Wówczas dane pobrane będą aktualne od razu a nie dopiero po odświeżeniu
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 4.10.2025 - 11:11