Я пытаюсь получить атрибут value элемента checkbox, чтобы содержать php json_encode() объекта simpleXML.
Я пробовал это для флажка:
<input type="checkbox" name="select_comparable" value="<?php json_encode($comp); ?>">
Я передаю его контроллеру с помощью этого jQuery:
$("input[name^=select_]").on( "click", function(){
alert($(this).data('value'))
comp.simpleXML = $(this).val();
selected.push(comp);
});
$("#btnSave").click(function(){
//alert(selected[0]);
$.ajax({
url: "/comparable/save",
type:"POST",
dataType: 'json',
data: {"data": selected},
success: function(data) {
if (data.success) {
alert("saved!");
} else {
alert("not saved!");
}
},
});
});
но когда я смотрю на контроллер, все, что я получаю, это "{".
Проблема в том, что JSON использует "
много: строки и значения свойств объекта оба заключены в двойные кавычки.
Чтобы поместить JSON в атрибут HTML, вы ДОЛЖНЫ запускать его через htmlspecialchars
.
Вы могли бы найти проблему самостоятельно, если используете View Source;)
Публикация комментария @adeneo в качестве ответа. "Вы попробовали это с одинарными кавычками → value = ''" - adeneo
value='<?php json_encode($comp); ?>'