Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    117

    Mantenere Zeri nel Parametro di una Funzione

    Ho il seguente codice che modifica il value di un input all'interno di un form.
    Codice PHP:
    echo "<div onclick='pfill("$spcodice")'></div>"
    codice:
    function pfill(key){
    var cp = key
    $('#cproduttore').val(key);
    }
    La variabile $spcodice talvolta assume valori che iniziano per zero, come "006". La variabile nella funzione javascript viene però trattata come numero e questo implica che nell'input mi ritrovo "6" invece di "006".
    Come faccio a prevenire questo meccanismo?

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,684
    Lato JavaScript dovrai passare quel valore come stringa testuale, ovvero racchiudendola tra apici (singoli o doppi che siano).

    Ovviamente il problema è lato PHP, in cui dovrai eseguire un escaping per aggiungere opportunamente tali apici.

    Una soluzione potrebbe essere questa:

    Codice PHP:
    echo "<div onclick=\"pfill('"$spcodice"')\"></div>"
    Per cui, supponendo che $spcodice sia 006, lato client otterrai questo:

    codice:
    <div onclick="pfill('006')"></div>
    Nota che l'argomento della funzione è racchiuso tra apici ('006'), questo fa in modo che tale valore sia trattato come stringa testuale e non come valore numerico.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,684
    Potrebbe essere scritto anche in maniera più stringata:
    Codice PHP:
    echo "<div onclick=\"pfill('$spcodice')\"></div>"
    Ultima modifica di KillerWorm; 01-03-2017 a 01:12

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    117
    Ho capito perfettamente.
    Il backslash per camuffare i doppi apici è un escamotage a cui non avevo pensato.
    Grazie mille!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.