Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana przecinka na kropke
Forum PHP.pl > Forum > Przedszkole
supler
Ludzie jestem tepakiem wiec dajcie prosze gotowca sad.gif

Mam taki formularz:
<?php echo $form->create('butt', array('url' => '/add/'.$stopka['stopa']['id']));?>
<fieldset class="auto">
<label for="MinimumPrice">Minimalna</label><input class="disabled" name="data[minimum_price]" type="text" maxlength="9" value="" id="MinimumPrice" /><span class="unit">zł</span>
<label for="MaximumPrice">Maksymalna</label><input class="disabled" name="data[maximum_price]" type="text" maxlength="9" value="" id="MaximumPrice" /><span class="unit">zł</span>
<label for="Start">Ilosc</label><input class="disabled" name="data[bids]" type="text" maxlength="9" value="" id="start" /><span class="unit"></span>
</fieldset>
<span class="submit"><input type="submit" value="Set"/></span>

i to jest ok - wszystko dziala na wszystkie sposoby ale tylko gdy liczby wpisuje z kropka (np: 100.32) a jesli juz wpisze z przecinkiem (np 1000,23) to juz mi wyskakuje do poprawki formularz inny.

Czy da sie jakos zmienic przecinki na kropke przed wyslaniem formularza? Jesli nie do moze jakos inaczej?

uzylem str_replace i zmienialo ladnie ale skrypt jest tak napisany ze najpierw to jest sprawdzane a pozniej jak nie jest ok to sie wyswietla formularz i napisane co poprawic - dopiero wtedy wyswietlalo sie bez przecinka a z kropka ale to jest zbyt pozno bo inaczej nie powinno poakzac wogole formularza sad.gif

Prosze lopatologicznie napisac jak to zrobic mozna
skowron-line
  1. <input type="text" name="abc" onkeyup="this.value=this.value.replace( /,/g,'.' );">

*pisane z palca
Ges
Proponuje zmienić logike w skrypcie, tak, żeby najpierw sprawdziło "," i "." (ewentualnie zamienić je aby były poprawne) a dopiero potem decydować o pokazaniu formularza.

Oczywiście możesz zastosować Javascripta, który może na onSubmitForm wyrzucić Ci błąd, bo go poprawić. Ale to jest mało bezpieczne rozwiązanie moim zdaniem (Javascripta można wyłączyć), więc i tak zapewniłbym walidacje po stronie odbierania formularza i tam to walidował jako podstawowy mechanizm rozwiązania Twojego problemu.

Najlepszym rozwiązaniem i najmniej uciążliwym dla użytowników będzie oczywiście podwójna walidacja i po Javascripcie i po stronie PHPa.
supler
skowron a mozesz tak w skrócie opisac co to znaczy ten aly kod i co robi ktora jego czesc: onkeyup="this.value=this.value.replace( /,/g,'.' )

PS: dziala doskonale ale chcialbym na przyslzosc troche teorii poznac biggrin.gif
skowron-line
Cytat(supler @ 16.11.2009, 14:54:53 ) *
skowron a mozesz tak w skrócie opisac co to znaczy ten aly kod i co robi ktora jego czesc


A proszę bardzo
- onkeyup to zdarzenie o którym poczytaj w googlu
- replace odpowiednik phpowskiego str_replace
- this.value oznacza wartość tego konkretnego elementu
- this.value = this.value + 'a' oznacza przypisanie elementowi wartosci wlasnej i dodanie do niej litery a, czyli w kodzie który Ci dałem do value przypisujesz value z inputa ale z zamienionymi przecinkami na kropki.
- g to global tak żeby zamieniał wszystkie przecinki na kropkę
supler
echo $form->input('minimum_price',' array('label' => __('Minimum Price *', true)));

a czy tu tez mozna to zastosowac?

tot ez niby formularz ale nie wiem czy to php jest (chetnie sie dowiem co bo nawet nie wiem czego szukac zeby jakies podstawy zlapac)

skowron-line
Cytat(supler @ 16.11.2009, 15:23:57 ) *
echo $form->input('minimum_price',' array('label' => __('Minimum Price *', true)));

a czy tu tez mozna to zastosowac?

tot ez niby formularz ale nie wiem czy to php jest (chetnie sie dowiem co bo nawet nie wiem czego szukac zeby jakies podstawy zlapac)

  1. $form

To obiekt jakiejś klasy do tworzenia formularzy ja niewiem jakiej może jak byś to napisał to było by prościej Ci pomóc ( lub ewentualnie jaki fw )
supler
wlasnie problem w tym ze plikow jes tyle ze nie wiem w ktorym tej klasy szukac sad.gif

total commander tez nie pomaga
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.