Visualizzazione dei risultati da 1 a 6 su 6

Discussione: chiavi di un array

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    115

    chiavi di un array

    salve a tutti,
    ho realizzato un form che i ciu tag input sono scritti così:
    Codice PHP:
    echo "<input type=\"text\" name=\"$row[0]\" />

    dopodiché vado a recuperare la chiave dell'array $_POST così:
    Codice PHP:
    while (list($chiave$valore) = each($_POST)) 
    se stampo il valore di chiave, noto che gli spazi e i . vengono sostituiti da _
    ad esempio, se la chiave fosse "nome 1" mi verrebbe stampato "nome_1"

    Dato che mi serve la stringa così come è stata inserita nel form, come posso evitare questo problema?

    NOTA: se guardo il codice html della form il campo name="" è riempito correttamente

    grazie mille.

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    e provando così

    Codice PHP:
    foreach($_POST as $key=>$dato) echo $key
    anzichè

    Codice PHP:
    while (list($chiave$valore) = each($_POST)) 
    come te la da la chiave?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    115
    non cambia nulla...

  4. #4
    spazi e punti non sono ammessi....

    Dots in incoming variable names

    Typically, PHP does not alter the names of variables when they are passed into a script. However, it should be noted that the dot (period, full stop) is not a valid character in a PHP variable name. For the reason, look at it: <?php
    $varname.ext; /* invalid variable name */
    ?> Now, what the parser sees is a variable named $varname, followed by the string concatenation operator, followed by the barestring (i.e. unquoted string which doesn't match any known key or reserved words) 'ext'. Obviously, this doesn't have the intended result.

    For this reason, it is important to note that PHP will automatically replace any dots in incoming variable names with underscores.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    115
    ecco fatto...
    grazie per la nota...
    penso di risolverla in questa maniera:
    dato che dovrei confrontare questa chiave con una stringa in un campo di un db (chiamato "nome"), inserisco nello stesso db una colonna (chiamata "codice") che prende il valore di "nome" e lo trasforma come lo trasformerebbe php. dopodiché confronto la mia chiave con "codice" anziché con "nome".
    potrebbe essere una soluzione?

  6. #6
    potrebbe. potrebbe anche essere una soluzione usare la chiave primaria invece di un valore del campo. Dipende da cosa stai facendo. potresti anche fare un replace() dello spazio e/o punto con un undescore al momento dell'estrazione del dato.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.