[PHP] prijs textfield omzetten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Okay, ik heb een kleine webshop gemaakt, werkt prima.
Alleen nu is de klant zo snugger om voor 25000 euro in te voeren: 25.000,--

hier kan PHP niet verder mee rekenen, dus moet ik dit afvangen.

ik had het volgende bedacht
PHP:
1
2
3
4
      $prijs = strtr($prijs, ".", "");
      $prijs = strtr($prijs, "-", "0");
      $prijs = strtr($prijs, "=", "0");
      $prijs = strtr($prijs, ",", ".");


zou moetten werken aldus de PHP manual, het doet echter geen ruk :)
1: de punt wordt eruit gehaald
2: eventuele rare tekens ipv de 00 worden vervangen
3: zie 2
4: de komma wordt vervangen met een punt (om later mee te rekenen)

Zou naar mijn idee moeten werken, en volgens http://www.php.net/manual/en/function.str-replace.php ook

Helaas pindakaas ... niet dus.

Iemand enige suggesties wat hier loos mee kan zijn?? en wat een eventuele oplossing voor dit probleem is.

Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
doe maar zo:
PHP:
1
$prijs=str_replace(".","",$prijs);
;)

Maar wat doen je als je klant 10.75 invoert??? ( en daarmee 10 euro 75 ct bedoelt?)

[ Voor 49% gewijzigd door beetle71 op 24-04-2003 12:44 ]


Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

Is strtr() wel precies hetzelfde als str_replace() ?

Volgens mij is het net iets anders.

En misschien kan je beter met een regex oid checken of er alleen cijfers (en punten) in zitten.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
beetle71 schreef op 24 April 2003 @ 12:42:
doe maar zo:
PHP:
1
$prijs=str_replace(".","",$prijs);
;)
thnx :)

Dat werkt.

Hmm, goeie idd, om eens te kijken of ze die . met een reden hebben geplaatst.
Zou m exploden helpen?
(exploden, en kijken hoeveel chars in 2e deel, en of 2e deel wel numeriek is)
2 chars: komma (dus nix doen)
3 chars: punt (dus weghalen)

Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Ik vind het een beetje link om te zeggen "ik haal gewoon elke punt (.) weg".
Misschien is het beter om te zeggen ik haal elke punt weg als er drie cijfers achter staan.
je kan daar dit voor gebruiken:
PHP:
1
$prijs=preg_replace("/\.([0-9]{3})/","\\1",$prijs);


Daarna moet je natuurlijk nog steeds zoek en vervang doen op
',-'
',--'
',='
en ',=='

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat was precies wat ik nodig had :)

Thanks een boel.

Het script werkt nu perfectos, en die klooio's kunnen lekker in gaan voeren.

Acties:
  • 0 Henk 'm!

  • Twan V
  • Registratie: Oktober 2001
  • Laatst online: 16-09 15:39

Twan V

...en er stralend uitzien

Dat zijn dingen die ik persoonlijk een javascript ipv een phpscript zou laten doen. Waarom laat je eigenlijk klanten van een webwinkel zelf prijzen invullen? Als ik mijn prijzen zelf mag verzinnen, kom ik bij jou ook een keer boodschappen doen :P

Blaat het niet dan schaadt het niet...
Reflex Discoshow - Het beste wat je bruiloft kan overkomen


Acties:
  • 0 Henk 'm!

Verwijderd

Twan V schreef op 24 april 2003 @ 16:50:
Dat zijn dingen die ik persoonlijk een javascript ipv een phpscript zou laten doen. Waarom laat je eigenlijk klanten van een webwinkel zelf prijzen invullen? Als ik mijn prijzen zelf mag verzinnen, kom ik bij jou ook een keer boodschappen doen :P
ik denk dat hij een admin panel o.i.d. bedoeld :)
Pagina: 1