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

    virgolette che chiudono prematuramente l'attributo del tag

    Non sapevo se postare qui o in PHP, ma visto che si tratta di un problema lato-client...

    Mi ritrovo con una variabile PHP da passare ad una funzione javascript, il problema sorge nel momento in cui nella stringa sono presenti virgolette ("), ecco un esempio funzionante:

    codice:
    <?
    $string = "questa stringa va bene";
    $string = addslashes($string); // gli slash di escape non risolvono il problema, ovviamente
    ?>
    Vai!
    ma se $string è, ad esempio = questa stringa non va bene perche ci sono le "virgolette" non posso passarla all'html, perché mi produce qualcosa tipo

    codice:
    <a href="javascript:faiQuesto('questa stringa non va bene perche ci sono le " [...]
    chiudendo così prematuramente l'attributo href.

    Come posso ovviare a questo problema? Per ora ho risolto sostituendo tramite PHP le virgolette con altri caratteri, esempio:

    codice:
    $string = str_replace('"','TestoSostitutivoDelleVirgolette',$string);
    e poi risostituendo il testo con le virgolette, sempre tramite replace, nella funzione javascript, ma mi sembra una soluzione poco elegante e che potrebbe portare ad errori, quando sicuramente esistono metodi migliori...suggerimenti?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ogni volta che la stringa viene "presa in mano" da un programma, si mangia meta`+1 delle backslash.

    Quindi nel tuo caso ti basta mettere davanti al tuo carattere virgolette due, tre o piu` backslash. Fai un po' di prove.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Grazie, ho risolto in un modo talmente semplice che quasi me ne vergogno: bastava aggiungere un htmlspecialchars($string);

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.