2015-09-14 5 views
1

У меня есть textarea, украшенный плагином nicEdit.Кодировать/расшифровывать html-теги в javascript

Мне нужно отправить полученный код на мой php-сервер сообщением ajax. Что мне делать, чтобы избежать html-тегов и получать их на моем сервере?

Кроме того, мне нужно показать их на другой веб-странице другим вызовом ajax. Чтобы декодировать их после получения от php, что мне делать?

Это я JSON пробовал:

{'title':'srefzgseg','text':'<a href="link_to_page">s</a>drhgrdshgrdghrdgdgrdg<img src="http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg" alt="dgfvsegfseg" align="none">'} 

моя функция:

function saveData(){ 
    var title = $("#titulo").val(); 
    var text = new nicEditors.findEditor('new_area').getContent(); 
    var jsonNew = "{'title':'"+title+"','text':'"+text+"'}"; 
    console.log(jsonNew); 
    $.ajax({ 
     type: "POST", 
     url: "./server/saveNewData.php", 
     contentType: "application/json; charset=utf-8", 
     data: jsonNew, 
     dataType: "json", 
     success: function(response) { 
     }, 
     error:function(xhr, status, message) {console.log(message); alert("Ha ocurrido un error al guardar los datos");} 
    }); 
} 
+1

Зачем вам нужно, чтобы избежать их? Если вам удастся ввести их, вы также сможете прочитать их на другой стороне. PHP не будет делать для них ничего особенного. Единственная необходимость избегать тегов - это если вы хотите отобразить исходный код HTML на странице HTML. – GolezTrol

+0

если я не включаю тег html в свой текст, php-сервер получает этот текст, в тот момент, когда я это делаю, я ничего не получаю на своем сервере. Кроме того, json-файл не очень хорошо форматируется, если я пытаюсь использовать jsonlint. – Biribu

+0

. Вы вводили текст в HTML или текстовый текст уже был заполнен в текстовом поле? В последнем случае вам нужно избежать кода при выводе его в элемент текстовой области. Если вы просто ввели его и AJAX не удалось, пожалуйста, поделитесь более подробной информацией, например, с соответствующей частью кода и любыми ошибками, которые вы получили от консоли JavaScript и журналов PHP. – GolezTrol

ответ

3

Ваш JSON является недействительным. Строки в JSON должны иметь двойные кавычки.

Если вам нужны двойные кавычки внутри строки, вам нужно избежать их с помощью обратной косой черты.

Но вместо того, чтобы писать решение самостоятельно, пусть JSON-сериализация быть обработаны JavaScript, и вы не будете иметь эту проблему:

var o = {}; 
o.title = $("#titulo").val(); 
o.text = new nicEditors.findEditor('new_area').getContent(); 
var jsonNew = JSON.stringify(o); 
+1

Нет необходимости строгать JSON, jQuery может обрабатывать его автоматически. – VisioN

+0

Это работает. Я не знал о методе stringify. Спасибо! VisioN, не стягивая, тоже будет работать? – Biribu

+1

Да, если вы просто передаете 'o', jQuery должен подстроить его за экранами. – GolezTrol

Смежные вопросы