Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dane alfanumeryczne
Forum PHP.pl > Forum > Przedszkole
tajfo
Witam, mam problem z moim skryptem. Jestem początkujący więc proszę o cierpliwość. Przy wypełnianiu formularza na stronie internetowej mam podać cenę. Wartość w tym polu musi być wyrażona cyframi dodatnimi a ja chce żeby można było wpisać tam znak "-" niedostępny.

W kodzie to wygląda tak:
Kod
if( isNaN(frm.sb_price.value) || frm.sb_price.value<=0)
{
  alert('Określ cenę cyframi dodatnimi');
  frm.sb_price.focus();
  frm.sb_price.select();
  return(false);

Kod
if ( !is_numeric($sb_price) || ($sb_price <= 0) )
  {
   $errs[$errcnt]="Cena musi być wyrażona cyframi dodatnimi";
   $errcnt++;
  }

Co trzeba zmienić żeby można było wstawić znak "-" ?
golaod
Po pierwsze zły przedrostek. [JS] a nie [PHP].
Po drugie
Kod
<input type="text" id="truli"/>
<input type="button" value="ops" onClick="if(!isNaN(document.getElementById('truli').value)){alert('JEST')}" />

Działa mi dla liczby -24.24 zatem gdzie ty widzisz problem ?
Sławo
Cytat
Wartość w tym polu musi być wyrażona cyframi dodatnimi a ja chce żeby można było wpisać tam znak "-" niedostępny.


A nie lepiej zrobić w tym przypadku pole nieaktywne??


Cytat
Działa mi dla liczby -24.24 zatem gdzie ty widzisz problem ?


Ale nie powinno.
tajfo
Cytat(Sławo @ 18.09.2008, 15:28:19 ) *
A nie lepiej zrobić w tym przypadku pole nieaktywne??

Jeśli by mi to wystarczyło to bym nie pytał. Mam kilka takich pól gdzie chcę żeby oprócz wartości cyfrowej można było wpisać znak "-".
golaod
Możesz mi wyjaśnić czemu nie powinno mi to działać ?
tajfo
To jak to będzie?
W skrypcie w polu gdzie wpisuje się wartość cyfrową jest kod
Kod
<input name="sb_price" type="text" id="sb_price" value="<?php echo $sb_price;  ?>" size="5" maxlength="30">

Co trzeba dodać/zmienić żeby można było wpisać "-"
golaod
Nic nie trzeba zmienić. Odpowiedz na pytanie gdzie masz sprawdzaną wartość liczbową czy w js czy php bo widziałem skrypty do obu.
Poza tym zauważyłem if ( !is_numeric($sb_price) || ($sb_price <= 0) ) co oznacza, że nie możesz mieć liczby mniejszej niż zero!
tajfo
Cytat(golaod @ 18.09.2008, 16:17:20 ) *
Nic nie trzeba zmienić. Odpowiedz na pytanie gdzie masz sprawdzaną wartość liczbową czy w js czy php bo widziałem skrypty do obu.

W js bo błąd pojawia się w formie okienka windowsa ale kody są oba w skrypcie.

Cytat(golaod @ 18.09.2008, 16:17:20 ) *
Poza tym zauważyłem if ( !is_numeric($sb_price) || ($sb_price <= 0) ) co oznacza, że nie możesz mieć liczby mniejszej niż zero!


To wiem, tyle, że ja chce mieć możliwość wstawienia tam zamiast liczby także znaku "-" wtedy obok ceny produktu w sklepie będe miał znak "-" czyli niedostępna bo jaką cene wpisze jeśli nie znam ceny w danym momencie? I tylko o to chodzi bo mój skrypt nie daje takiej możliwości.

Nie wiem czy nie trzeba czasami napisać tego kawałka kodu w inny sposób bo z tego co widze to skrypt sprawdza czy wartość jest numeryczna dodatnia czy nie i na tym koniec dry.gif
sowiq
A nie wystarczy Ci dopisanie jednego, głupiego warunku, który załatwiałby wszystko?

  1. <?php
  2. if ( $sb_price != '-' && (!is_numeric($sb_price) || $sb_price <= 0) ){
  3.    $errs[$errcnt]="Cena musi być wyrażona cyframi dodatnimi";
  4.    $errcnt++;
  5. }
  6. ?>


Kod
  if( frm.sb_price.value != '-' && (isNaN(frm.sb_price.value) || frm.sb_price.value<=0))
{
  alert('Określ cenę cyframi dodatnimi');
  frm.sb_price.focus();
  frm.sb_price.select();
  return(false);



PS. Jakbyś w pierwszym poście od razu logicznie napisał o co Ci chodzi, od razu dostałbyś odpowiedź.
tajfo
Hmm no nie bardzo to chce działać. Jak dodam ten kod to inny element nie działa na tej stronie: dodawanie kategorii więc jest jeszcze gorzej bo wogóle nie mogę przejść procedury dodawania produktu.
sowiq
Ja Ci pokazałem jak poprawić WKLEJONY KAWAŁEK KODU. Nie wiem co ma piernik do wiatraka, że Ci nie działa dodawanie kategorii. Musisz mieć gdzie indziej błąd.
tajfo
OK, dzięki wszystko śmiga tylko po wypełnieniu, kiedy chce zapisać dane czyli wysłać ofertę to wyskakuje błąd, że nie można zamieścić oferty czyli nie zapisuje do bazy danych?
Da się to zapisać jakoś inaczej w kodzie?
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.