Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Pola input
Forum PHP.pl > Forum > Przedszkole
nirre
Czy dało by się wstawić do pola input blokady ? Chodzi mi oto że można byłoby wpisywać same cyferki i kropki oraz jak zrobić maksymalną ilość dopuszczalnych znaków ?
in5ane
Możesz zrobić, że jak ktoś wpisze już jakiś tekst do pola input to w php sprawdzić co tam wpisał. Jeżeli są tam litery to zablokuj skrypt dalej, jeżeli nie ma liter to puść go do przodu smile.gif
nirre
Cytat(in5ane @ 3.08.2007, 12:45:05 ) *
Możesz zrobić, że jak ktoś wpisze już jakiś tekst do pola input to w php sprawdzić co tam wpisał. Jeżeli są tam litery to zablokuj skrypt dalej, jeżeli nie ma liter to puść go do przodu smile.gif


A mógłbyś mi podać kod ? Bo u mnie to troche skomplikowane jest. Bo mam 2 pola input z których dane są zapisywane do pliku tekstowego. Zatem jak do poniższego kodu dodać takie blokady ?

Kod
<?php
/*********************************************
* plik formularz.php
*********************************************/

$pole1 = trim($_POST['pole1']);
$pole2 = trim($_POST['pole2']);

if(empty($pole1) and empty($pole2)) {
    
// prosty formularz zawierający dwa pola
echo '<form action="" method="post">
:: <b>Dodawanie serwera do Counter Strike 1.6 Nonsteam</b><p>
IP Serwera: <input type="text" name="pole1" style="width: 170px;" /><p>
Port Serwera: <input type="text" name="pole2" style="width: 70px;" /><br />

</textarea><br />
<input type="submit" value="Dodaj Serwer!" />
</form>';
}
else {
    
    // dane pochodzące z formularza
    $dane = "$pole1:$pole2:halflife:on\n";
    // przypisanie zmniennej $file nazwy pliku
    $file = "body/serwery/cs_nonsteam/lgsl_servers_nonsteam.txt";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "a");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);
    
    echo "Serwer został pomyślnie dodany do listy! Dziękujemy.<br />";
}

?>
aga323
Hej. Tez miałam podobny problem i uzyskałam odpowiedx w tym temacie:
forum.php.pl/index.php?showtopic=72690&pid=376503&mode=threaded&show=&st=&#entry376503
Mam nadzieję, żeto coś pomoże smile.gif
P.S.
Nie rozwiążesz tego raczej bez użycia JS
nirre
Cytat(aga323 @ 3.08.2007, 12:51:21 ) *
Hej. Tez miałam podobny problem i uzyskałam odpowiedx w tym temacie:
forum.php.pl/index.php?showtopic=72690&pid=376503&mode=threaded&show=&st=&#entry376503
Mam nadzieję, żeto coś pomoże smile.gif
P.S.
Nie rozwiążesz tego raczej bez użycia JS


Albo ja taki głupi albo coś innego smile.gif Oglądałem twój post a w szczególności odpowiedź uli i właśnie sie nią zainteresowałem. Wkleiłem kod na samym początku w <php> i mi nie działa teraz winksmiley.jpg pokazuje się coś takiego:
Kod
Parse error: syntax error, unexpected ',', expecting '&' or T_VARIABLE in E:\Program Files\VertrigoServ\www\body\serwery\cs_nonsteam\Dodaj Serwer.php on line 5


A tak oto wkleiłem kod:
Kod
<?php
/*********************************************
* plik formularz.php
*********************************************/
function maskuj(AEvent, AMaska) {
if (window.Event) {
kodKlawisza = AEvent.which;
} else {
kodKlawisza = AEvent.keyCode;
}

// if (kodKlawisza == 13) {
// return true; // Enter
// };

if (kodKlawisza == 8) {
return true; // klawisze sterujące
};

if (kodKlawisza == 0) {
return true; // klawisze sterujące
};

klawisz = String.fromCharCode(kodKlawisza);

if (AMaska.indexOf(klawisz) == -1) {
return false;
} else {
return true;
}
}

$pole1 = trim($_POST['pole1']);
$pole2 = trim($_POST['pole2']);

if(empty($pole1) and empty($pole2)) {
    
// prosty formularz zawierający dwa pola
echo '<form action="" method="post">
:: <b>Dodawanie serwera do Counter Strike 1.6 Nonsteam</b><p>
IP Serwera: <input type="text" name="pole1" style="width: 170px;" /><p>
Port Serwera: <input type="text" name="pole2" style="width: 70px;" /><br />

</textarea><br />
<input type="submit" value="Dodaj Serwer!" />
</form>';
}
else {
    
    // dane pochodzące z formularza
    $dane = "$pole1:$pole2:halflife:on\n";
    // przypisanie zmniennej $file nazwy pliku
    $file = "body/serwery/cs_nonsteam/lgsl_servers_nonsteam.txt";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "a");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);
    
    echo "Serwer został pomyślnie dodany do listy! Dziękujemy.<br />";
}

?>
aga323
A daj do tego znaczniki JS
Kod
<script type="text/javascript">
function maskuj itd...
</script>
szawel
albo poczytaj o wyrazeniach regularnych w php gdzies w googlach znajdziesz kurs
a co do ilosci wprowadzonych danych to do paramtrów inputa dodaj maxlenght="i tutaj ilosc znaków"
nirre
Jak wstawiłem skrypt w JS, to błędów już nie było, ale teraz z kolei jak zrobić aby pole input czytało z tego kodu w js? Ten co ula podała u mnie nie działa ;/
aga323
A weź podaj cały kod zobaczymy jak to wygląda i gdzie może leżeć problem.
nirre
Cytat(aga323 @ 3.08.2007, 21:56:55 ) *
A weź podaj cały kod zobaczymy jak to wygląda i gdzie może leżeć problem.


Kod
<script type="text/javascript">
function maskuj(AEvent, AMaska) {
if (window.Event) {
kodKlawisza = AEvent.which;
} else {
kodKlawisza = AEvent.keyCode;
}

// if (kodKlawisza == 13) {
// return true; // Enter
// };

if (kodKlawisza == 8) {
return true; // klawisze sterujące
};

if (kodKlawisza == 0) {
return true; // klawisze sterujące
};

klawisz = String.fromCharCode(kodKlawisza);

if (AMaska.indexOf(klawisz) == -1) {
return false;
} else {
return true;
}
}
</script>
<?php
/*********************************************
* plik formularz.php
*********************************************/
$pole1 = trim($_POST['pole1']);
$pole2 = trim($_POST['pole2']);

if(empty($pole1) and empty($pole2)) {
    
// prosty formularz zawierający dwa pola
echo '<form action="" method="post">
:: <b>Dodawanie serwera do Counter Strike 1.6 Nonsteam</b><p>
IP Serwera: <input type="text" name="pole1" onkeypress="return maskuj" style="width: 170px;" /><p>
Port Serwera: <input type="text" name="pole2" style="width: 70px;" /><br />

</textarea><br />
<input type="submit" value="Dodaj Serwer!" />
</form>';
}
else {
    
    // dane pochodzące z formularza
    $dane = "$pole1:$pole2:halflife:on\n";
    // przypisanie zmniennej $file nazwy pliku
    $file = "body/serwery/cs_nonsteam/lgsl_servers_nonsteam.txt";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "a");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);
    
    echo "Serwer został pomyślnie dodany do listy! Dziękujemy.<br />";
}

?>
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.