Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    come levare spazi in un imput type

    ho provato a fare così

    <input type="text" name="telefono" value="<?=$_POST['telefono'] = str_replace(" ", "", $telefono)?>" size="18" maxlength="30">

    ma me lo ignora, continua ad inserirmi nel db (ad esempio: 06 254875 anzichè 06254875)

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Il terzo parametro deve essere $_POST['telefono'] e non serve assegnare il risultato della funzione str_replace() ad una variabile.
    Inoltre è meglio usare la funzione trim(), specifica per questo compito; così eliminerai tutti gli spazi, tabulazioni e rimandi a capo.

    <?= trim($_POST['telefono']) ?>

    Ciao :)
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da Sky
    Il terzo parametro deve essere $_POST['telefono'] e non serve assegnare il risultato della funzione str_replace() ad una variabile.
    Inoltre è meglio usare la funzione trim(), specifica per questo compito; così eliminerai tutti gli spazi, tabulazioni e rimandi a capo.

    <?= trim($_POST['telefono']) ?>

    Ciao
    Grazie Sky, l'ho inserito:

    <input type="text" name="telefono" value="<?= trim($_POST['telefono']) ?>" size="18" maxlength="30">

    ma non'è cambiato nulla continua ad inserirmi lo spazio dopo il prefisso (06 54879784)

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Credo ci sia un errore concettuale nella programmazione, ma per esserne sicuro dovrei vedere tutto il codice.
    Quello che fai tu è prendere una variabile da POST, toglierle gli spazi e metterla in un campo del form.
    Dov'è la parte in cui inserisce il dato nel DB?
    E' lì che devi usare trim()!

    Luca

  5. #5
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,650
    il trim in questo caso non è utilissimo, leva gli spazi e le tabulazioni a capo e a coda della stringa

    se la stringa contenente il numero di telefono è $telefono il codice è
    Codice PHP:
    <input type="text" name="telefono" value="<? print str_replace(" ","",$_POST['telefono']) ?>" size="18" maxlength="30">

  6. #6
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Hai ragione, ma il problema, secondo me, rimane a livello di struttura del programma: questo codice aggiorna il campo del form con i dati da $POST (se viene fatto in invio del form verso se stesso), ma non sappiamo come inserisce i dati nel DB.
    In ogni caso non modifica $POST['telefono'] e quindi non è molto utile.

    Luca

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    ehm, credo di aver capito perchè inserisce nel db con gli spazi. Lui con quel codice tenta solo di inserire il dato $_POST['telefono'] nel form senza spazi. Deve mettere un ulteriore codice nella pagina di inserimento nel db. E trim() non è quello che fa per te (serve solo a togliere spazi da destra e da sinistra, ma non dentro).

    Prova così, prima di inserire:
    $_POST['telefono'] = preg_replace('/\s/', $_POST['telefono']);

    e poi costruisci la query per inserire nel database

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da billo
    ehm, credo di aver capito perchè inserisce nel db con gli spazi. Lui con quel codice tenta solo di inserire il dato $_POST['telefono'] nel form senza spazi. Deve mettere un ulteriore codice nella pagina di inserimento nel db. E trim() non è quello che fa per te (serve solo a togliere spazi da destra e da sinistra, ma non dentro).

    Prova così, prima di inserire:
    $_POST['telefono'] = preg_replace('/\s/', $_POST['telefono']);

    e poi costruisci la query per inserire nel database
    Ho provato anche a fare come dici tu ma lo spazio continua a lasciarmelo, questo è il codice:

    Codice PHP:
    <?
    $_POST
    ['mittente'] = preg_replace('/\s/'$_POST['mittente']);

    $sql "INSERT INTO registro_chiamate (mittente)
    VALUES ('
    $mittente')";
    mysql_query($sql$conn) or die ("errore ".mysql_error());
    $msg "chiamata inserita nel database";
    ?>

    <form enctype="multipart/form-data" name="form" action="<?=$PHP_SELF?>" method="post">
    <input type="text" name="mittente" value="<?=$_POST['mittente']?>" size="20" maxlength="30">
        
          <input name="submit" type="submit" class="pulsante" value="inserisci">
     </form>

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    Originariamente inviato da prinzart
    Codice PHP:
    <?
    $sql 
    "INSERT INTO registro_chiamate (mittente)
    VALUES ('
    $mittente')";
    ?>
    Scusami, ma a quanto ho capito tu sfrutti i global_qualcosa (non mi ricordo il nome del settaggio del php.ini).

    Prova a cambiare

    $_POST['mittente'] = preg_replace('/s/', $_POST['mittente']);

    in

    $mittente = preg_replace('/s/', $_POST['mittente']);

    Comunque ti consiglio di non adottare il metodo che usi tu, era tipico del php4, ma è stato comunque disabilitato (di default).

  10. #10
    Nel preg_replace manca il secondo parametro, quello di sostituzione.
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

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.