• User Attivo

    validare un campo numerico

    come si valida un campo numerico? Cioè impedire l'inserimento dei caratteri che non sono numeri?

    [PHP]
    <input name="imponibile" type="text" size="20" maxlength="20">
    [/PHP]


  • User Attivo

    Lato server (PHP) la funzione è is_numeric: http://it2.php.net/manual/it/function.is-numeric.php
    Altrimenti lato client devi usare javascript


  • User Attivo

    ho letto il manuale e ho fatto così, ma non funziona. Chi mi darebbe una mano :(:

    <input name="imponibile"> type="text" size="20" maxlength="8">

    [PHP]
    <?php
    $sql = "INSERT INTO protocollo_ordini (imponibile)
    VALUES ('$imponibile')";
    mysql_query($sql, $conn) or die ($sql);
    $msg = "protocollo inserito nel database";

    if (strlen ($imponibile) > 8 && strlen ($imponibile) < 2) {
    $msg_numeri_a = "ERRORE<br>il campo imponibile deve avere meno di 8 numeri e piu di due";
    }
    elseif (is_numeric($imponibile)) {
    $msg_numeri_b = "ERRORE<br>il campo imponibile deve contenere solo numeri";
    }
    ?>
    [/PHP]


  • Moderatore

    prova con
    [php]<input id="imponibile" name="imponibile" type="text" size="20" maxlength="20">
    [/php]

    [php]
    <?php

    if (strlen ($imponibile) > 8 && strlen ($imponibile) < 2) {
    $msg_numeri_a = "ERRORE<br>il campo imponibile deve avere meno di 8 numeri e piu di due";
    }
    elseif (is_numeric($imponibile)) {
    $msg_numeri_b = "ERRORE<br>il campo imponibile deve contenere solo numeri";
    }
    else {
    $sql = "INSERT INTO protocollo_ordini (imponibile)
    VALUES ('$imponibile')";
    mysql_query($sql, $conn) or die ($sql);
    $msg = "protocollo inserito nel database";
    }
    ?>
    [/php]


  • User

    @massimux said:

    prova con
    [php]<input id="imponibile" name="imponibile" type="text" size="20" maxlength="20">
    [/php]

    [php]
    <?php

    if (strlen ($imponibile) > 8 && strlen ($imponibile) < 2) {
    $msg_numeri_a = "ERRORE<br>il campo imponibile deve avere meno di 8 numeri e piu di due";
    }
    elseif (is_numeric($imponibile)) {
    $msg_numeri_b = "ERRORE<br>il campo imponibile deve contenere solo numeri";
    }
    else {
    $sql = "INSERT INTO protocollo_ordini (imponibile)
    VALUES ('$imponibile')";
    mysql_query($sql, $conn) or die ($sql);
    $msg = "protocollo inserito nel database";
    }
    ?>
    [/php]

    scusate ma per effettuare il controllo cosi come scritto sopra non si dovrebbe mettere l'elseif in questo modo?

    [php]
    elseif (!is_numeric($imponibile)) {
    $msg_numeri_b = "ERRORE<br>il campo imponibile deve contenere solo numeri";}
    [/php]

    inoltre la prima parte andrebbe scritta cosi penso
    [PHP]
    if (strlen ($imponibile) > 8 or strlen ($imponibile) <= 2) {
    $msg_numeri_a = "ERRORE<br>il campo imponibile deve avere meno di 8 numeri e piu di due";
    }
    [/PHP]
    oppure no?:ciauz: