Я ценю, что об этом уже много раз спрашивали, так как я только что провел последние девять часов, читая вопросы и ответы снова и снова, однако я не могу решить эту проблему.
Я хочу передать свой php
объект businessSectors
в атрибут html
данных data-sectors
, преобразовать его в JSON
, чтобы я мог передать его в функцию javascript
, где я проанализирует это в javascript
объект.
<td><input type="checkbox" class="minimal"
name="template[]" data-sectors="{{json_encode((array)$template->businessSectors)}}" value="
{{$template->_id}}" {{$template->display ? "checked" : ""}}></td>
Ошибка:
Uncaught SyntaxError: Unexpected token E in JSON at posostion 0 at JSON.parse`
Поэтому я верю и исправлю меня, если я ошибаюсь, что то, что передается методу JSON.parse
, не является действительным JSON string
.
Поэтому я попытался манипулировать значением атрибута data-sectors
в моем .blade.php
различными способами, чтобы решить эту проблему. Я почти уверен, что есть персонаж, которому нужно убежать, но решение избегает меня.
Проверка источника дает мне:
<input type="checkbox" class="minimal" name="template[]" data-sectors='["Education and
Training"]' value="5d3eb15110560b0a800f359c" >
Может ли кто-нибудь, пожалуйста, указать мне правильное направление и "направить меня в правильном направлении", я имею в виду, пожалуйста, объясните в терминах, что Разочарованный дилетант может понять, в чем именно заключается проблема и как go решить ее.
Редактировать: (см. javascript)
<script>
$(document).ready(function(){
let businessSectorData = {!! json_encode($businessSector) !!};
let $businessSector = $("#businessSector");
$businessSector.select2(stdSelect2(businessSectorData));
$businessSector.on("change", function (e) { log("change",e) });
function log (name, evt) {
$("input[name='template[]']").each(function(){
let $this = $(this);
let sectors = JSON.parse($this.data("sectors"));
var i = 0
});
}
})