Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Ustalenie rodzaju pola formularza
TheArt
post 25.06.2009, 16:13:50
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 20.09.2007

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


Chodzi mi o to by użytkownik miał narzucony rodzaj pola formularza. Przykładowo w polu WIEK mógł wpisać tylko cyfry, zaś w polu email musiał wpisać "@". W polu imie nazwisko musial wpisac dwa wyrazy, zas w polu ulubiony kolor mogl wybrac kilka kolorow z dostepnych. Chcialbym przeczytać o całej składni "input" tylko nie moge znaleźć w Internecie pelnego opisu. Wszedzie tylko jakies kursy z narzucona tematyką.
Go to the top of the page
+Quote Post
nospor
post 25.06.2009, 16:21:48
Post #2





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




to co mowisz to nie jest rodzaj pola w walidacja pola.
walidacja moze być zarówno po stronie przeglądarki (js) jak i po stronie serwera (np. php)

ps: na necie masz pełno materiałów o walidacji


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Spawnm
post 25.06.2009, 16:25:05
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




o formularzach poczytasz tutaj: klik
jeśli chodzi o sprawdzenie czy jest @ lub 2 wyrazy to albo po wysłaniu w php sprawdzasz albo przed wysłaniem w javascript.
Go to the top of the page
+Quote Post
TheArt
post 25.06.2009, 16:30:48
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 20.09.2007

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


Chciałbym tylko opis funkcji form, input wraz z parametrami. W stylu helionowego opisu HTMLa: http://webmaster.helion.pl/kurshtml/indeks/input.htm. To co napisał spawnm jest fajne tylko nie w moim języku.

Jak zrobić, żeby w formularzu dyscyplina sportowa w polu ulubiona pisało delikatnym szarym kolorem "wpisz ulubiona dyscyplinę", żeby po kliknięciu w to pole ten napis znikał.

Jak zrobić wymaganie wpisania liczb, bo rozumiem że to da się.

Ten post edytował TheArt 25.06.2009, 16:38:28
Go to the top of the page
+Quote Post
Wicepsik
post 25.06.2009, 16:36:30
Post #5





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. <input type="text" name="dyscyplina" value="wpisz ulubiona dyscypline">



Nawet w linku który podałeś pisze:
value - określa początkową, domyślną wartość danego pola (niewymagany)

Ten post edytował Wicepsik 25.06.2009, 16:37:17


--------------------
Go to the top of the page
+Quote Post
erix
post 25.06.2009, 17:05:33
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Chciałbym tylko opis funkcji form, input wraz z parametrami. W stylu helionowego opisu HTMLa: http://webmaster.helion.pl/kurshtml/indeks/input.htm. To co napisał spawnm jest fajne tylko nie w moim języku.

Spróbuj może z XForms?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
TheArt
post 26.06.2009, 00:56:39
Post #7





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 20.09.2007

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


dzięki wicepsik, tyle że ten tekst nie znika po ustawieniu w polu kursora, jak to zrobić by znikł, by po ustawieniu kursora w polu nie było już tekstu
Go to the top of the page
+Quote Post
krzysiekk
post 26.06.2009, 07:28:38
Post #8





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

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


witam
  1. <script language="javascript">
  2. function czysc(element)
  3. {
  4. element.value="";
  5. }
  6.  
  7.  
  8. <input type="text" value="miejsce na info" onfocus="czysc(this)">
Go to the top of the page
+Quote Post
piotrooo89
post 26.06.2009, 07:58:15
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




po co tak na około tyle pisać?

  1. onfocus="this.value=''"


i też zadziała.


--------------------
Go to the top of the page
+Quote Post
Asmox
post 26.06.2009, 08:01:14
Post #10





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Oczywiście, ale jak pól w formularzu będzie milion pięćset sto dziewięćset, to chyba lepiej wpisać nazwę funkcji niż polecenie


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 26.06.2009, 08:04:56
Post #11


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




tak racja, jest różnica na 2 znakach...


--------------------
Go to the top of the page
+Quote Post
nospor
post 26.06.2009, 08:08:57
Post #12





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




spapraliscie tak prosty kod ze glowa mala winksmiley.jpg No i teraz wejde w inputa, napis mi zniknie wpisze cos i wyjde. no i teraz zauwazylem ze literowke popelnilem. wchodze w inputa by poprawic literowke a tu.... zonk tongue.gif

No i sie teraz klocicie nad tym spapranym kodem winksmiley.jpg Napiszcie jak nalezy i wtedy dopiero sie przekomazajcie. Moze dojdziecie do innych wnioskow.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
krzysiekk
post 26.06.2009, 08:56:39
Post #13





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

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


w zasadzie kod robił co chciał autor czyli czyscił pole inputa
  1. <script language="JavaScript">
  2. function czysc(Input)
  3. {
  4. if (Input.value == 'Dodaj...') {
  5. Input.value = '';
  6. }
  7.  
  8. return true;
  9. }
  10.  
  11.  
  12. <input type="text" value="Dodaj..." onfocus="czysc(this)">

teraz można poprawić dane np. literówkę
Go to the top of the page
+Quote Post
nospor
post 26.06.2009, 08:58:53
Post #14





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




Cytat
w zasadzie kod robił co chciał autor czyli czyscił pole inputa
a widziales gdzies w praktyce kody, ktore czyszczą inputa zawsze niezaleznie od tresci? Bo ja nie. Mozna sie wiec bylo domyslic, ze autorowi tez chodzi o taki troche bardziej wypasiony winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Asmox
post 26.06.2009, 09:01:12
Post #15





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


  1. <script language="javascript">
  2. function czysc(element)
  3. {
  4. dane = array("imie", "nazwisko", "datę urodzin");
  5. for(i=0; i<dane.lenght; i++) {
  6. if (element.value == "Tu wpisz " + dane[i])
  7. element.value = '';
  8. }
  9. }

Można by było (może) zrobić coś z wyrażeniami regularnymi, ale ja nie jestem specem od JavaScriptu.

@TheArt powiem ci, że nie ma sensu walidować 2 razy i zrób porządną walidację w PHP. Podpowiem ci nawet, że jest specjalny zestaw funkcji do sprawdzania, czy zmienna/pole klasy jest czymś tam: is_... (numeric, integer, string, array itd...). A jak chcesz zrobić zajefajnie wyglądające powiadomienia, że coś jest nie tak, to w tabelce formularza (mam nadzieję, że tworzysz formularz w tabeli) dodajesz kolumnę na błędy i na przykład:
  1. <span class="<?php if (isset($errors['telefon'])) echo "blad" ?>">Popraw dane!</span>

Jeżeli się da element i atrybut class/is ustawi się na pusty to nic się nie wyświetli. Oczywiście możesz też zrobić coś lepszego jak na przykład:
  1. <?php
  2. <td>(isset($errors['telefon'])) ? echo $errors['telefon'] : echo "<br />"</td>
  3. ?>


Ten post edytował Asmox 26.06.2009, 09:15:42


--------------------
Go to the top of the page
+Quote Post
TheArt
post 26.06.2009, 16:20:01
Post #16





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 20.09.2007

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


Dzięki chłopaki za wyczerpujące kody, choć mało z nich rozumiem. Obsługę błędów zrobiłem jednak z tym znikającym tekstem nie kumam. Moglibyście trochę wytłumaczyć ten kod.

Trochę mi się rozjaśniło, używam tego:

Kod
<script language="JavaScript">
function czysc(Input)
{
if (Input.value == 'Dodaj...') {
Input.value = '';
}

return true;
}
</script>

<input type="text" value="Dodaj..." onfocus="czysc(this)">


tylko z tego co widzę do każdego pola formularza trzeba zrobić osobno:

Kod
{
if (Input.value == 'Dodaj...') {
Input.value = '';
}


w zależności od treści która ma być w polu przed kliknięciem, chyba że da się wprowadzić 'or', w C++ jest takie wyrażenie logiczne, czy w php też. Chodzi mi o

Kod
{
if (Input.value == 'Dodaj...' or 'tekst2' or 'tekst3') {
Input.value = '';
}


PS. Jak to zastosować do textarea

Chłopaki znalazłem w necie trochę inny sposób, bez używania js, co moim zdaniem daje pewność, że zadziała też u tych, którzy mają wyłączone skrypty js.

Kod
<?
$nasz_tekst = 'nasz tekst zachęty';
    
$kasowanie = 'onfocus="this.value='';"';
    
if(!$wartość1)
{
$kasuj = $kasowanie;
$wartość1 = $nasz_tekst;
}
else
$kasuj = '';
  
echo '<textarea '.$kasuj.'>'.$wartość1.'</textarea>';
  
  
if(!$wartość1)
{
$kasuj = $kasowanie;
$wartość2 = 'nasz wartość początkowa';
}
else
$kasuj = '';
    
echo '<input type="text" value="'.$wartość2.'" '.$kasuj.'/>';
?>


Tyle, że ciągle wywala błąd parsowania.

Ten post edytował TheArt 26.06.2009, 15:23:23
Go to the top of the page
+Quote Post
Pawel_W
post 26.06.2009, 18:50:11
Post #17





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


błąd niewidoczny, ale przy parsowaniu wyskakuje
  1. <?php
  2. $kasowanie = 'onfocus="this.value='';"';
  3. ?>

na
  1. <?php
  2. $kasowanie = 'onfocus="this.value='';"';
  3. ?>

a co do javascript to wystarczyłoby
  1. <input title="tekst na zachete" value="tekst na zachete" onfocus="if(this.value==this.title)this.value=''; " type="text">

powinno zadziałać
Go to the top of the page
+Quote Post
TheArt
post 27.06.2009, 15:21:44
Post #18





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 20.09.2007

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


Cytat(Pawel_W @ 26.06.2009, 19:50:11 ) *
a co do javascript to wystarczyłoby
  1. <input title="tekst na zachete" value="tekst na zachete" onfocus="if(this.value==this.title)this.value=''; " type="text">

powinno zadziałać


Tyle, że to nadal zadziała tylko dla jednego konkretnego ciągu znaków.
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: 29.06.2025 - 09:02