Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + html] Jak zrobic formularz z rowijanym polem wyboru
Forum PHP.pl > Forum > Przedszkole
stal-sw
Jak zrobic formularz z rozwijanym polem wyboru (wybierac bedziemy grafiki np. 1.jpg, 2.jpg, 3.jpg) wraz z akcja ktora bedzie wprowadzac nazwe wybranej grafiki do bazy danych.

Potrzebne to mi jest do zrobienia skryptu do obslugi zapowiedzi meczow (wyswietlanie dwoch herbow druzyn).
kurtz
Cytat
Jak zrobic formularz z rozwijanym polem wyboru (wybierac bedziemy grafiki np. 1.jpg, 2.jpg, 3.jpg) wraz z akcja ktora bedzie wprowadzac nazwe wybranej grafiki do bazy danych.
problem dotyczy raczej HTML+CSS - musisz w stylach zdefiniowac tlo kazdego <option'a> w selectcie. dalej to juz chyba nie takie trudne.
zombie
<select>
<option value="wartosc 1">wartość 1
<option value="wartosc 2">wartość 2
<option value="wartosc 3">wartość 3
<option value="wartosc 4">wartość 4
</select>

Chociaz w zasadzie to jest strona php.pl, a nie html.pl biggrin.gif
KaMeLeOn
Widzę, że szukasz pomocy na wszystkich dostępnych forach o php :!:
Seth
Poczytaj tez to:
http://zend.com/zend/tut/drop-down.php
Mellos
PILNE exclamation.gif! Nie znalazłem nic więcej na forum w podobnym temacie więc nie chcąc pisać nowego Posta podpinam się pod ten temat bo jest on związany podobnie z moim problemem. PILNE exclamation.gif!

Mianowicie posiadam formularz który sobie jako tako dostosowałem do swoich potrzeb, chodzi o kolor czcionki, ramki, tło itp, choć przyznam szczerze że jestem zielony z php dlatego w tej sprawie, proszę Was o pomoc.

Kod formularza:
Kod
<?php
// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST['submit'])) {
    // wy¶wietlamy formularz
    echo "<table border=\"0\"><form method=\"post\">
<tr>
<td><span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: right;\"><strong>Nazwa,nr.produktu:</strong></span>
<br><input type=\"text\" name=\"imie\" style=\"width: 150px; font-size:10px; font-family:Verdana; font-weight: bold; color: #666666; background: transparent; border-width: 1px; bordercolorlight;\"></td>
</tr>
<tr>
<td><span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: right;\"><strong>Kolor:</strong></span>
<br><input type=\"text\" name=\"email\" style=\"width: 150px; font-size:10px; font-family:Verdana; font-weight: bold; color: #666666; background: transparent; border-width: 1px; bordercolorlight;\"></td>
</tr>
<tr>
<td><span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: right;\"><strong>Ilo¶ć sztuk:</strong></span>
<br><input type=\"text\" name=\"telefon\" style=\"width: 150px; font-size:10px; font-family:Verdana; font-weight: bold; color: #666666; background: transparent; border-width: 1px; bordercolorlight;\"></td>
</tr>
<tr>
<td><span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: right;\"><strong>Nadruk: tak/nie</strong></span>
<br><input type=\"text\" name=\"telefon\" style=\"width: 150px; font-size:10px; font-family:Verdana; font-weight: bold; color: #666666; background: transparent; border-width: 1px; bordercolorlight;\"></td>
</tr>  
<tr>
<td><span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: right;\"><strong>e-mail:</strong></span>
<br><textarea name=\"tresc\" style=\"width: 150px; height: 18px; font-size:10px; font-family:Verdana; font-weight: bold; color: #666666; background: transparent; border-width: 1px; bordercolorlight; overflow:hidden;\"></textarea></td>
</tr>
<tr>
<td><br><input type=\"submit\" name=\"submit\" style=\"color: #5C5C5C; background-color: transparent; font-size: 09px; font-family: Verdana; font-weight: bold; border-style: solid; border-color: #E9E9E9; border-width: 2px\" value=\"W¦LIJ\">
<input type=\"reset\" style=\"color: #5C5C5C; background-color: transparent; font-size: 09px; font-family: Verdana; font-weight: bold; border-style: solid; border-color: #E9E9E9; border-width: 2px\" value=\"WYCZY¦Ć\"></td></form>
</tr>
</table>";
}
// sprawdzamy, czy zmienne przesłane z formularza nie s± puste
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email']) && !empty($_POST['telefon'])) {
    // jeżeli powyższy warunek jest spełniony tworzona jest wiadomo¶ć
    // zmienna $message zawiera tre¶ć wiadomo¶ci
    $message = "E-mail: $_POST[tresc]\nNazwa,nr.produktu: $_POST[imie]\nKolor: $_POST[email]\nNadruk: $_POST[telefon]";
    // zmienna $header zawiera przede wszystkim adres zwrotny
    $header = "From: $_POST[imie] <$_POST[email]>";
    // funkcja mail() za pomoc± której wiadomo¶ć zostanie wysłana
    @mail("mail1@x.poczta.pl","Wiadomosc wysłana z formularza www","$message","$header")
    or die('Nie udało się wysłać wiadomo¶ci');
     // funkcja mail() za pomoc± której wiadomo¶ć zostanie wysłana
    @mail("mail2@.x.poczta.pl","Wiadomosc wysłana z formularza www","$message","$header")
    or die('Nie udało się wysłać wiadomo¶ci');
    // wy¶wietlenie komunikatu w przypadku powodzenia
    echo "<span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: left;\"><strong>Zapytanie ofertowe zostało wysłane poprawnie.  OdpowiedĽ zostanie przesłana na podany adres e-mail. Dziękujemy !</strong></span>";
}
// lub w przypadku nie wypełnienia formularza do końca
else echo "<span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: left;\"><strong>Wypełnij wszystkie pola formularza!<strong></span>";

?>

Co prawda on jest troche pokręcony w wartościach POST ale na maila przychodzi prawidłowo tak jak chce.

Link do formularza:
Formularz

A teraz do sedna sprawy:

Potrzebuję by np w jednym z tych pól, a dokładnie tu:

<td><span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: right;\"><strong>Nazwa,nr.produktu:</strong></span>
<br><input type=\"text\" name=\"imie\" style=\"width: 150px; font-size:10px; font-family:Verdana; font-weight: bold; color: #666666; background: transparent; border-width: 1px; bordercolorlight;\"></td>
</tr>

potrzebuje zrobić listę rozwijaną składającą która będzie posiadała 7 pozycji, np:

Towar nr.1
Towar nr.2
Towar nr.3 itp.

Proszę Was o szybką pomoc jest to dla mnie bardzo pilne. Próbowałem już na różne sposoby to zrobić z funkcją Select ale nie potrafię tego dobrze zapisać ponieważ tak jak pisze to jestem początkujący.

Liczę na zainteresowanie tematem - z góry THX

Jeśli komuś się chce poprawić dokładnie cały kod bo widzi w nim błędy i podesłać do mnie na maila to dopiero będę dozgonnie wdzięczny mellos@o2.pl
nospor
Cytat
Nie znalazłem nic więcej na forum w podobnym temacie

No nic dziwnego skoro szukales na Hydepark. Przenosze
Mellos
Szukałem na całym forum i gdzie znalazłem podobne tematy tam dawałem posta, THX za przeniesienie.
acztery
pewnie tak samo jak wyżej ktos juz wspomniał .... przecież to takie proste wystarczy poczytać... <select> ...
Mellos
Dla Ciebie to i może proste ale dla kogoś kto nie ma o tym zielonego pojęcia to nie jest proste. Jak by to było proste to bym nie pisał.

Dla jednych coś prostego jest drudne jeśli się tego uczą, da innych tych co już umieją jest banalne. Ci BANALNI zapominają o tym że oni kiedyś też się tego uczyli.
Neojawor
Może i jest to trudne dla początkujących, ale nie aż tak, żeby samemu do tego nie dojść, ale mniejsza z tym. Zrób tak:
  1. <td><span style=\"font-size:10px; font-family:Verdana; color: #666666; text-align: right;\"><strong>Nazwa,nr.produktu:</strong></span>
  2. <br><select name=\"imie\" style=\"width: 150px; font-size:10px; font-family:Verdana; font-weight: bold; color: #666666; background: transparent; border-width: 1px; bordercolorlight;\">
  3. <option value=\"towar1\">towar 1
  4. <option value=\"towar2\">towar 2
  5. <option value=\"towar3\">towar 3
  6. <option value=\"towar4\">towar 4
  7. </select></td>
  8. </tr>

Zrobiłem tu tylko jedno - zamieniłem element <input> na <select> - sam byś to zrobił gdybyś dobrze przeczytał cały ten temat.
Pamiętaj, że wartość zmiennej "imie" to ten tekst, który jest wpisany pod value, a to co jest wpisane za znacznikiem <option> będzie widoczne w liście wyboru.

ps. Nie sprawdzałem czy nie masz tam błędów, kod robiłem kopiując Twój, więc jeśli były tam błędy, to tu też będą.

ps2. Polecam zainstalować EDHTML - program dla mnie kiepski, ale posiada najlepszy jaki znam help do HTML-a dla początkujących (takich jak ja). Help ten też bywa luzem na necie, ale najłatwiej go znaleźć przy tym programie.
Mellos
Bardzo serdecznie Ci dziękuję Neojawor. Męczył bym się z tym niezmiernie pewnie. Działa wszystko poprawnie i na maila dochodzi tak jak chciałem. Z góry jeszcze raz serdecznie za pomoc. Są jeszcze dobrzy ludzie na tym forum smile.gif

Nie wiem czy jeszcze mogę tu zapytać o to co dopisać do elseif by po wysłaniu formularza i informacji że został poprawnie wysłany powracał znów do pustego formularza.

Pewnie jest już to gdzieś na forum ale było by miło dla następnych początkujących gdy było by już to razem w tym temacie. Formularz ten może np. Posłużyć za przykład.

Jeszcze raz THX Neojawor exclamation.gif!
Neojawor
Czy skrypt php który podajesz na początku jest umieszczony w tym samym pliku co formularz?
Sądząc po wyglądzie skryptu to tak, więc na samym końcu w "elseif" wstaw kod źródłowy formularza, czyli to co się zawiera w poleceniu echo. Wtedy skrypt najpierw wyśle maila, później wyświetli raport, że "mail zostanie wysłany etc...", a na końcu zostanie wyświetlona pusta tabela (zaraz pod tym raportem
Mellos
Tak skrypt to jest cały formularz zapisany jako mail.php.
Cytat
więc na samym końcu w "elseif" wstaw kod źródłowy formularza, czyli to co się zawiera w poleceniu echo.
- nie bardzo rozumiem o co chodzi, a dokładnie co mam tam wstawić. Próbuje już na różne sposoby i nie wychodzi. sad.gif

Podaje link do poprawionego już formularza z pomocą Neojawor

Formularz z listą wyboru
Neojawor
tam gdzie masz:
  1. <?php
  2. elseif (warunek_bla; warunek_bla2; warunek_bla3)
  3. {
  4. instrukcja_bla 1;
  5. instrukcja_bla 2;
  6. instrukcja_bla 3;
  7. echo "<span style="font-size:10px; font-family:Verdana; color: #666666; text-align: left;"><strong>Zapytanie ofertowe zostało wysłane poprawnie. OdpowiedĽ zostanie przesłana na podany adres e-mail. Dziękujemy !</strong></span>";
  8. TUTAJ;
  9. }
  10. ?>


W miejsce "TUTAJ" wpisz ten kod, który tworzy formularz, czyli skopiuj to:
  1. <?php
  2. echo "<table border="0"><form method="post">
  3. <tr>
  4. <td><span style="font-size ....... blablabla
  5. blablablablablablablablablablablabla
  6. .
  7. .
  8. .
  9. </tr>
  10. </table>";
  11. ?>


Poszukaj sobie w swoim kodzie, to znajdziesz co masz skopiować - jest tego tyle, że nie wpisuję całego, środek zastępując ładnym bla smile.gif
Podałbym Ci cały kod, ale musisz się trochę wysilić biggrin.gif
Mellos
Dzięki wielkie. Właśnie się wysilam i próbuje na różne sposoby. Próbowałem już własnie od początku całość wklejać ale wyskakuje mi błąd. Próbuje dalej , mam nadzieję że mi się uda. Tylko czas ucieka ale i tak dużo mi już pomogłeś. Wielkie dzięki. Jak mi się uda to wrzuce tu kod dla innych.

No i udało się.
Pewnie miało to wyglądać tak po wysłaniu.

Formularz - po wysłaniu komunikat na górze.

Ale biorąc pod uwagę że mam małą stronę i formularz ten jest wyświetlany w ramce strony .html z pomocą <iframe> wyświetla mi się strona np.xxx.php która posiada funkcję <?php include("mail.php"); ?> Może to troche zakręcone ale chodziło mi o to by się formularz nie przeładowywał za każdym razem kiedy np wyświetlam produkty również w tej samej stronie .html za pomocą <iframe>.

Dlatego przy takim rozwiązaniu formularz idzie w dół i nie widać przycisków WYSLIJ - WYCZYSC.

Podaje link do przykładu.
PRZYKŁAD

Więc chodzi mi o to by po wypełnieniu formularza pokazał komunikat o wypełnieniu (t.j. w przykładzie PRZYKŁAD i powrócił znów do pustego formularza, bądź przy braku wypełnienia tak samo (choć tu mogę zastosować POWRÓT i podać <a href=...>)

Męczarnia. Nie zrobie tego sam a już nie mówiąc że dzisiaj. sad.gif


Ps. Ide z psem i zapalić se fajke - oczy mi z orbit wychodzą i nerwy już puszczają, świerze powietrze dobrze mi zrobi! hehe

No i po spacerze.

Widze że temat zawisł w miejscu. A szkoda bo można było by go dalej pociągnąć. Może ktoś się jeszcze podejmie próby by mi pomóc - a jednocześnie przy okazji innym których nurtuje podobny problem.

PLEAS exclamation.gif! HELP ME exclamation.gif!

sadsmiley02.gif

Widze że nikt narazie nie może mi pomóc w tym temacie. Udało się wyświetlić komunikat w tym samym oknie czyli nad formularzem za co jeszcze raz dziękuję Neojawor. Ale żeby wyświetlał się komunikat osobno i powracał samoczynnie do pustego formularza to nie znalazłem jeszcze nigdzie na tym forum. Oczy mi już padły na dzisiaj więc do zobaczenia jutro. Pozdro @ll sadsmiley02.gif
skowron-line
  1. <?php
  2. function formularz($a, $b){
  3. <form action="" method="post">
  4. <input type="text" name="a" size="10" value="'.$a.'">
  5. <input type="text" name="b" size="10" value="'.$b.'">
  6. <input type="submit" name="submit">
  7. </form>
  8. ';
  9. }
  10.  
  11. if(isset($_POST['submit'])){
  12.  
  13. $error = array();
  14. //sprawdzanie a
  15. if(!empty($_POST['a'])){
  16. $a = $_POST['a'];
  17. }elseif($_POST['a'] == "ERROR"){
  18. $a = $error[] = "ERROR";
  19. }else{
  20. $a = $error[] = "ERROR ";
  21. }
  22. //sprawdzanie b
  23. if(!empty($_POST['b'])){
  24. $b = $_POST['b'];
  25. }elseif($_POST['b'] == "ERROR"){
  26. $b = $error[] = "ERROR";
  27. }else{
  28. $b = $error[] = "ERROR";
  29. }
  30.  
  31.  
  32. if(!empty($error)){
  33. formularz($a , $b);
  34. }else{
  35. echo'oka';
  36. //albo cos innego jakis zapis do bazy albo cos innego
  37. }
  38.  
  39. }else{
  40. formularz($a, $b);
  41. }
  42. ?>

takie tam moze ci sie przyda
Archerr
Nie lepiej zrobić to w JavaScript ? Chces to Ci mogę wżucić kod cały itp. Poprostu w JavaScript łatwo wszystko zmienisz jeśli chcesz... zależy jeszcze czy twoja strona będzie na podstawie kodu php czy znajdzie się tam także inny.

Szczerze mówiąc to można by zebrać się razem i wspólnie zrobić takowy formularz w php aby był on dość ciekawy i ładny dla wszystkich. Również prosty w konfiguracji smile.gif

Pozdrawiam winksmiley.jpg
Mellos
No dokładnie. Można by było zrobić takowy formularz w php i opisać co i jak i do czego. Taki jeden dobry temat by już nikt nie miał problemów z prostym formularzem. Za chwil kilka obczaje ten formularz skowron-line.
Neojawor
Rozwiązanie jest takie:
wyświetla Ci się strona z komunikatem, a w tym pliku wsadzasz taki javaskrypt:
  1. <script language="javascript">
  2. setTimeout("window.location.replace('formularz.php')", XXX)
  3. </script>

Oznacza to, że plik przeładuje się po XXX ms na adres formularz.php.

Czemu tak Ci zależy, żeby formularz się nie przeładowywał? takie coś się kombinuje, jeżeli dane są ciężkie i ich przeładowanie trwa sporo czasu. W Twoim przypadku wydaje mi się to zbędne
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.