Попытка иметь атрибут value флажка, содержащего php json_encode

0

Я пытаюсь получить атрибут 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!");
        }
      },
    });
  });

но когда я смотрю на контроллер, все, что я получаю, это "{".

  • 3
    Зачем вам нужно json_encode значение флажка? Должны, вероятно, объяснить цели, вероятно, придумать гораздо лучший подход
  • 1
    Вы пробовали это с одинарными кавычками -> value='<?php json_encode($comp); ?>'
Показать ещё 1 комментарий
Теги:
checkbox

2 ответа

1

Проблема в том, что JSON использует " много: строки и значения свойств объекта оба заключены в двойные кавычки.

Чтобы поместить JSON в атрибут HTML, вы ДОЛЖНЫ запускать его через htmlspecialchars.

Вы могли бы найти проблему самостоятельно, если используете View Source;)

0

Публикация комментария @adeneo в качестве ответа. "Вы попробовали это с одинарными кавычками → value = ''" - adeneo

Ещё вопросы

Сообщество Overcoder
Наверх
Меню