[jquery] Append e formattazione testo

giovedì 16 maggio 2013 - 12.52

Gemini Profilo | Expert

Ciao a tutti
sto impazzendo con append di jquery perchè mi cambia il codice che io gli passo.
Ho questo:

htmlProgrammi = ""<input id='hdDati" + id + "' type='hidden' value='" + json + "' />";
programmi_content.append(htmlProgrammi);

Se
json= "<input id='hdDatitemp2' type='hidden' value='{\"Id_Programma\" : \"temp201344124242\", \"Codice_Trasmissione\" : \"\", \"Programma\" : \"L&#39;acqua l&quot;acqua\", \"Descrizione\" : \"L&#39;acqua l&quot;acqua\", \"Inizio\" : \"07:00\", \"Web\" : \"www.demo.it\", \"Status\" : \"TEMP\"}' />"

nell'append diventa:
"<input id=\"hdDatitemp201344124242\" type=\"hidden\" value=\"{&quot;Id_Programma&quot; : &quot;temp201344124242&quot;, &quot;Codice_Trasmissione&quot; : &quot;&quot;, &quot;Programma&quot; : &quot;L'acqua l&quot;acqua&quot;, &quot;Descrizione&quot; : &quot;L'acqua l&quot;acqua&quot;, &quot;Inizio&quot; : &quot;07:00&quot;, &quot;Web&quot; : &quot;www.demo.it&quot;, &quot;Status&quot; : &quot;TEMP&quot;}\">"

Se
jdon= <input id='hdDatitemp20134412460' type='hidden' value='{\"Id_Programma\" : \"temp20134412460\", \"Codice_Trasmissione\" : \"\", \"Programma\" : \"l'acqua\", \"Descrizione\" : \"l'acqua\", \"Inizio\" : \"07:00\", \"Web\" : \"www.demo.it\", \"Status\" : \"TEMP\"}' />

nell'append diventa:
<input id=\"hdDatitemp20134412460\" type=\"hidden\" value='{\"Id_Programma\" : \"temp20134412460\", \"Codice_Trasmissione\" : \"\", \"Programma\" : \"l' \"temp\"}'=\"\" \"status\"=\"\" \"www.demo.it\",=\"\" \"web\"=\"\" \"07:00\",=\"\" \"inizio\"=\"\" \"l'acqua\",=\"\" \"descrizione\"=\"\" acqua\",=\"\">

Non capisco perchè.
Il probema è questo: devo inserire al click su un tasto un campo nascosto che contiene una stringa che rappresenta dati in formato json. Ho problemi quando passo parole con ' o con ".
Per superare questo problema ho pensato di formattare il testo con una libreria(primo caso) o sostituire " con ', ma ho problemi con l'append.
Grazie mille

0v3rCl0ck Profilo | Guru

Ciao, forse il tuo problema potrebbe essere relazionato a questo articolo: http://www.dotnetperls.com/htmlencode-htmldecode



-------------------------------------------------------
Michael Denny
Lead Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/

Gemini Profilo | Expert

Ciao
tutte quelle operazioni sono fatte lato client. Nell'articolo che hai consigliato, se non sbaglio, è lato server-
cmq, grazie

0v3rCl0ck Profilo | Guru

stai usando jquery giusto, il suo append?

programmi_content cos'è? che elemento DOM contiene?



-------------------------------------------------------
Michael Denny
Lead Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/

0v3rCl0ck Profilo | Guru

ho visto ora:

json= "<input id='hdDatitemp2' type='hidden' value= ". ....


stai inserendo nel value di un input un ulteriore input element? non credo abbia molto senso, a meno che tu non voglia passare una stringa al server contenente un input element completo, non dicevi che dovevi passare solo un json?



-------------------------------------------------------
Michael Denny
Lead Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/

0v3rCl0ck Profilo | Guru

comunque se vuoi passare un json partendo da un oggetto javascript, puoi utilizzare questa libreria: https://github.com/douglascrockford/JSON-js

ma di solito utilizzo sempre un metodo AJAX per passare dati al server, che già di suo trasmette gli oggetti javascript in json:

API completa:

http://api.jquery.com/jQuery.ajax/

Semplificazione per la GET:

http://api.jquery.com/jQuery.get/

Semplificazione per la POST:

http://api.jquery.com/jQuery.post/


in questo caso la pagina non fa il tipo refresh di quando esegui un classico form post, ma semplicemente la risposta del server viene spedita al comando jquery $.ajax, dove nella callback puoi aggiornare l'interfaccia grafica del client.


-------------------------------------------------------
Michael Denny
Lead Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/

Gemini Profilo | Expert

Ciao
Mi spiego meglio. Devo dare la possibilità all'utente di inserire un palinsesto televisivo. Quando clicca su un tasto si apre una popup dove inserisci tutti i dati di un programma. Quando clicca su salva devo visualizzare i dati inseriti in una tabella(creata con i div) e inserisco anche un campo nascosto che contiene dei dati in formato json per tenere traccia dei dati inseriti per poi salvarli sul server. Per far questo mi creo un stringa con il codice html e poi utilizzo append di jquery. Il problema è che append o mi formatta tutta la stringa che contiene il codice html sostituendo tutti i caratteri speciali o va in tilt perchè ci sono gli apici.
Fino a quando l'utente non salva tutto il palinsesto, sul server non salvo nulla.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5