Da mesi ero assillato da questo problema, per chi sviluppa siti web dinamici (Php) con le asincronie (Ajax e affini) si sarà sicuramente imbattuto nel problema del passaggio dati, interrotti da “ritorni a capo” o “carriage return”.
Esempio:
Ho un modulo (form) di inserimento dati, composto da soli tre <input type=”text”> tutto ok, perchè nel comporre una stringa da passare a Json di questo tipo
var V1=$('#html_input_1').val();
var V2=$('#html_input_2').val();
var V3=$('#html_input_3').val();
//------------------ajax start---------
$.ajax({
type:"POST",
url: 'includes/tab.mezzi/salva.nuovo.mezzo.php',
cache: false,
data:"JS={\"js_marca\":\""+V1+"\",\"js_modello\":\""+V2+"\",\"js_matrice\":\""+V3+"\"}",
success: function(msg)
{
alert(msg);
}
});
//------------------ajax end---------
…. non si incorre in nessun problema.
Problema:
Ma cosa succederebbe se uno di questi tre campi fosse una <textarea> multiriga dove un utente potrebbe tranquillamente andare a capo ?!
Se non vengon presi provvedimenti non si avranno mai i valori aspettati dai moduli, ma bensì la stringa Json verrebbe troncata con relativo errore nel formato !!!
Soluzione:
Cercando un pò in giro x il mondo ^^ ho trovato questa utilissima funzione javascript ke sostituisce i ‘ritorni a capo’ con il classico <br> lasciando così integra la stringa passata e evitando tutti i problemi di cui ho scritto sopra
!!
function parse_x(text)
{
var temp_Str = text;
var final_Str = temp_Str.replace(/\n/g, "<br>");
return final_Str;
}
Conclusione:
La funzione è di tipo javascript ma rende l’idea di cosa bisogna fare, quindi anche in php ci sono funzioni parallele per gestire le stringhe, dipende dal contesto in cui ci si trova. Buona programmazione/divertimento a tutti





