Ошибка Javascript, Экранирование проблемы, Сетка не работает, Ошибка в Firebug
Мы только начали с Sigma Grid, и он потрясающий по своей функциональности по сравнению с другими сетками.
Но я столкнулся с некоторой проблемой с Sigma Grid, или может быть с Javascript. Я не знаю, связана ли проблема с Grid или с моим кодом.
У меня есть таблица с 3 полями, а именно MailID, MailName, MailData.
MailID - это int,MailName и MailData содержат HTML-контент и сохраняются в виде строки в базе данных.
Когда я загружаю Grid, у меня возникают некоторые проблемы.
Проблема 1:
Как я уже говорил выше, Maildata содержит html-контент, следующее изображение является просто примером с <* b>, вы можете видеть, что HTML автоматически отображается на самой сетке, мне нужна точная строка.
пожалуйста, проверьте следующее изображение.
Проблема 2:
как вы можете видеть, у меня есть ссылки на сетку, для редактирования, отправки, удаления, но на одной из них она повреждена.[проверьте изображение ниже]
код, который я использовал для отображения ссылок, следующий.
{id: 'mailid' , header: "Action", width :120 , resizable : false, sortable : false , printable : false ,
renderer : function(value ,record,columnObj,grid,colNo,rowNo){
var no= record[columnObj.fieldIndex];
var cod = (record['maildata']);
return '<a href=\"#\" class=\"myli\" onClick="showalert('+no+');">Edit</a> | <a href=\"#\" onClick=\"alert('+cod+')\";>Send</a> | <a href=\"#\">Delete</a>';
Проблема 3:
Третье значение MailData равно 5, и оно является целым числом, когда я предупреждаю значение, оно показывает его правильно. проверьте следующее изображение.
Но когда я предупреждаю второе значение maildata, которое выдает ошибку, второе значение MailData - "hai newuser", оно показывает следующую ошибку в firebug.
missing ) after argument list
alert(hai newuser)
проверьте изображение ниже.
Но когда я предупреждаю 9-е значение MailData, оно работает правильно, содержимое < b> poy</ b>, оно также сохраняется как строка, но сетка автоматически выделяется BOLD [что мне не нравится]. Проверьте изображение ниже.
также есть некоторые другие, которые содержат значение;".: и т. д., также /b, когда я предупреждаю данные, которые показывают следующую ошибку,
unexpected end of XML source
alert(<b>jjfdslkdjflsdnfsldfnf
dsOptions и ColOptions следующие.
var dsOption= {
fields :[
{name : 'mailid' },
{name : 'mailname',type:"text" },
{name : 'maildata',type:"text" }
],
recordType : 'object',
}
function my_renderer(value ,record,columnObj,grid,colNo,rowNo)
{
var no= record[columnObj.fieldIndex];
return "<img src=\"./images/flag_" + no.toLowerCase() + ".gif\">";
}
function showalert(no)
{
$(document).ready(function()
{
$.post("http://localhost/power/index.php/power/give",{ name: no}, function(data)
{
//alert("Data Loaded: " + data);
$("#editor").show("fast");
$( '#txtar' ).ckeditor();
$('#txtar' ).val( data.maildata );
//$("#editor").html(data);
},"json"
);
});
}
var colsOption = [
{id: 'mailid' , header: "Mail ID" , width :60},
{id: 'mailname' , header: "Mail Name" , width :160 ,type:"text"},
{id: 'maildata' , header: "Mail Data" , width :190,type:"text" },
{header: "Group" , width :70,
editor : { type :"select" ,options : {'php':'php','asp':'asp'}
,defaultText : 'php' } },
{id: 'mailid' , header: "Action", width :120 , resizable : false, sortable : false , printable : false ,
renderer : function(value ,record,columnObj,grid,colNo,rowNo){
var no= record[columnObj.fieldIndex];
var cod = (record['maildata']);
return '<a href=\"#\" class=\"myli\" onClick="showalert('+no+');">Edit</a> | <a href=\"#\" onClick=\"alert('+cod+')\";>Send</a> | <a href=\"#\">Delete</a>';
} }
];
Я немного новичок в Javascript и Sigmagrid, я думаю, что я делаю что-то худшее с кодами, пожалуйста, помогите мне добиться успеха.
Спасибо.
Примечание: я также опубликовал тот же Вопрос на Sigma Grid Forum, я думаю, что это не проблема.
1 ответ
Проблема 2
Строка cod
содержит >
Проблема 3
Строка hai newuser
должен содержаться в "
или же '
или это считается именем переменной
По сути, вы должны решить - собираетесь ли вы проверять HTML или нет. Если вы не подтвердите HTML, ошибки HTML в данных будут отображаться как ошибки на вашей странице. Вы также можете избежать HTML, чтобы увидеть HTML-коды - это, вероятно, лучший план.
Другие сайты используют (например, этот) использовать уценку - это легче проверить - тогда они генерируют фактический HTML перед отображением.
Кроме того, у вас есть проблемы с предупреждением. Оповещение отображает строки, а не HTML, поэтому вы увидите то, что видите - результаты отличаются от ожидаемых в зависимости от HTML.
Я хотел бы сделать шаг назад и спросить себя - какой тип данных, как я собираюсь их отображать. Как я собираюсь проверить, что, если это HTML, он действителен.
Есть проблемы, которые вам нужно решить - все ваши примеры проистекают из этой проблемы.