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

    Copia valore in inputtext

    Buongiorno, ho questo tipo di istruzioni:

    <a href="#" onclick="document.form.indirizzo.value='Via Brescia, 3 Roma (RM)';">COPIA</a>
    <a href="#" onclick="document.form.indirizzo.value='Via Savona, 5 Milano (MI)';">COPIA</a>
    <a href="#" onclick="document.form.indirizzo.value='Via Carpi, 6 Trieste (TS)';">COPIA</a>

    Il problema è che la mia pagina fatta dinamicamente in PHP crea queste istruzioni, a volte scrive

    <a href="#" onclick="document.form.indirizzo.value='Via Palermo, 1 L'Aquila (AQ)';">COPIA</a>

    dove l'apostrofo o apice di L'Aquila fà si che non funzioni.

    Avete dritte da darmi?
    Prima o poi anch'io vi insegnerò qualcosa

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Devi usare la funzione PHP htmlspecialchars(), che effettua l'escape di tutti i caratteri speciali convertendoli in entity html o, meglio in questo contesto, la funzione json_encode() che si occupa di effettuare l'escape dei caratteri speciali anteponendoci il backslash.
    Ultima modifica di LeleFT; 26-09-2025 a 12:29
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Devi, comunque, prestare attenzione perchè stai usando l'apice singolo per racchiudere la stringa del valore in JavaScript. Così dovrebbe, invece, funzionare:

    Codice PHP:
    $str "L'Aquila";

    echo 
    '<a href="#" onclick="document.form.indirizzo.value=' json_encode($str) . '">Clicca</a>'
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Ovviamente la mia fattispecie è leggermente diversa: form e campo hanno un nome dinamico dettato da un valore in una tabella (ovviamente esiste in quel form un input text che si chiama in quel modo).

    Sono costretto a riportare ciò che ho scritto come righe di codice per mostrare il risultato (con Chrome).

    Ho fatto esattamente così:

    $str = "L'Aquila";

    echo '<a href="#" onclick="document.layoutform_'.$data['campo'].'.indirizzo_di_fornitura_'.$data['campo'].'.value=' . json_encode($str) . '">Clicca</a>';

    non funzionando ho guardato il sorgente ed è uscito così

    Schermata 2025-09-26 alle 16.43.47.png



    è un problema di php? di browser? di cosa?
    Prima o poi anch'io vi insegnerò qualcosa

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    E' vero... il json_encode scrive anche le virgolette, bisogna agire in modo diverso:

    Codice PHP:
    echo '<a href="#"  onclick="document.layoutform_'.$data['campo'].'.indirizzo_di_fornitura_'.$data['campo'].'.value=' htmlspecialchars(json_encode($str), ENT_QUOTES'UTF-8') . '">Clicca</a>'

    Così dovrebbe piacergli.
    Ultima modifica di LeleFT; 29-09-2025 a 09:42
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Oppure, in alternativa, anche questo dovrebbe funzionare:

    Codice PHP:
    echo '<a href="#"  onclick="document.layoutform_'.$data['campo'].'.indirizzo_di_fornitura_'.$data['campo'].'.value=\'' htmlspecialchars($strENT_QUOTES'UTF-8') . '\'">Clicca</a>'
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.