আমার এইচটিএমএল উপাদানটিতে একটি JSON অবজেক্টটি একটি অ্যাট্রিবিউটের মধ্যে রাখতে হবে।
এইচটিএমএলকে বৈধতা দেওয়ার দরকার নেই।কোয়ান্টিনের জবাব: জেএসওএন একটি
data-*
বৈশিষ্ট্যে সংরক্ষণ করুন যা বৈধ এইচটিএমএল 5।JSON অবজেক্ট যে কোনও আকার হতে পারে - অর্থাত্ বিশাল
মাইকু মরির উত্তর: একটি এইচটিএমএল বৈশিষ্ট্যের সীমা সম্ভাব্য 65536 টি অক্ষর ।
JSON এ যদি বিশেষ অক্ষর থাকে? যেমন
{foo: '<"bar/>'}
কোয়ান্টিনের জবাব: জেনসন স্ট্রিংটিকে সাধারণ কনভেনশন অনুসারে অ্যাট্রিবিউটে রাখার আগে এনকোড করুন। পিএইচপি-র জন্য, ফাংশনটি ব্যবহার করুন ।
htmlentities()
সম্পাদনা - পিএইচপি এবং jQuery ব্যবহার করে উদাহরণ সমাধান
এইচটিএমএল বৈশিষ্ট্যটিতে JSON লেখা:
<?php
$data = array(
'1' => 'test',
'foo' => '<"bar/>'
);
$json = json_encode($data);
?>
<a href="#" data-json="<?php echo htmlentities($json, ENT_QUOTES, 'UTF-8'); ?>">CLICK ME</a>
JQuery ব্যবহার করে JSON পুনরুদ্ধার করা:
$('a').click(function() {
// Read the contents of the attribute (returns a string)
var data = $(this).data('json');
// Parse the string back into a proper JSON object
var json = $.parseJSON($(this).data('json'));
// Object now available
console.log(json.foo);
});
data-json
ব্যবহার করা উচিত $(this).data('json')
, jQuery আপনি সেই অংশটি coveredেকে রেখেছেন।