Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Riconoscere decimali su campo input per controlli

    Ciao a tutti, ho fatto la stessa richiesta nella sezione js ma credo sia più opportuno risolvere il problema con php..

    Ho un campo input dedicato all'inserimento di un valore numerico con due decimali obbligatori separati con un punto (esempio 105589.12)

    Avrei bisogno di aggiungere due controlli:

    - se i decimali non vengono digitati, php deve aggiungermi ".00", altrimenti no (ora l'ho fatto con js, ma vorrei farlo con php per utilizzare un unico script);

    - se i decimali vengono separati con la virgola, la virgola deve essere sostituita con un punto (dovrei risolvere con str_replace);

    In pratica non so come far riconoscere i decimali per creare le regole.. come fare?

  2. #2
    Probabilmente si può fare meglio ma una bozza potrebbe essere questa:

    Codice PHP:
    <?php
    function converter($number) {
        
    $number str_replace(',''.'$number);
        
    $number number_format($number2'.''');
        return 
    $number;
    }

    echo 
    converter('12345')."<br/>";
    echo 
    converter('12.345')."<br/>";
    echo 
    converter('123,45')."<br/>";
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Sto pensando di lasciare all'utente la responsabilità di correggere manualmente il valore.. Per cui senza apportare correzioni automatiche mi basterebbe generare un avviso nei casi in cui il valore digitato:
    - comprende una virgola
    - comprende più di un punto
    - non contiene alcun punto

    Il mio problema è far riconoscere a PHP la presenza di questi valori.. tipo:

    codice:
    $prezzo = "$_POST['prezzo'];
    if (isset( *virgole e punti presenti in $prezzo* )
    {
    echo "errori presenti";
    }
    Credo debba usare le espressioni regolari, ma non so come usarli in questo caso..

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova questo (appena testato)

    Codice PHP:
    <?php
        $pattern 
    ='/^[0-9]+[.][0-9]{2}$/';

        
    $v '1234.56';
        echo 
    preg_match($pattern,$v);
        echo 
    '<br/>';

        
    $v '1234.560';
        echo 
    preg_match($pattern,$v);
        echo 
    '<br/>';

        
    $v '1234,56';
        echo 
    preg_match($pattern,$v);
        echo 
    '<br/>';

        
    $v '0.56';
        echo 
    preg_match($pattern,$v);
        echo 
    '<br/>';

        
    $v '.56';
        echo 
    preg_match($pattern,$v);
        echo 
    '<br/>';
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    funziona alla grande! devo assolutamente studiarmeli per bene queste espressioni regolari

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.