سؤال

أنا أستخدم مكتبة PHP/Codeigniter هذه لـ JQuery Highcharts: http://www.crustiz.com/php-jquery/highcharts-library-for-codeigniter/

الطريقة التي تقوم بها المكتبة بالأشياء هي أنها تبني مجموعة من الخيارات PHP ، ثم تقوم بتحويلها إلى JSON باستخدام JSON_ENCODE (انظر السطر 273 من تلك المكتبة) والذي يستخدم بعد ذلك بواسطة المكون الإضافي JQUERY HIGHCHARTS. هذا جيد ، باستثناء الخيار الذي أحاول استخدامه هو تنسيق تلميح الأدوات ، والذي يجب أن يكون وظيفة JavaScript ، وليس سلسلة (انظر http://www.highcharts.com/ref/#tooltip).

نظرًا لأن المكتبة لا تحتوي على وظيفة تلميح الأدوات ، فقد قمت بإنشاء واحدة كاختبار:

  function set_tooltip() {
    $this->a_options['tooltip']['formatter'] = 'function() { return this.series.name + "<br>" + this.x + ": " + this.y }';
    return $this;
  }

ولكن هذا لا يعمل لأن وظيفة JS هي الإخراج كسلسلة ، وليس وظيفة. أي شخص يعرف ما إذا كانت هناك طريقة لجعلها وظيفة بعد المرور عبر json_encode دون إعادة كتابة هذا الجزء من المكتبة؟

هل كانت مفيدة؟

المحلول

JSON ليس المقصود نقل الوظائف. إذا ألقيت نظرة على توثيق, ، لا يوجد سوى مواصفات لأربعة أنواع - كائن ، صفيف ، سلسلة ورقم - بالإضافة إلى القيم true, false و null.

إذا أصرت على القيام بذلك ، ربما مثل مقال مثل إرسال وظائف JavaScript على JSON سوف يعطيك يد.

نصائح أخرى

ليس لدى JSON نوع "رد الاتصال" ، لذا أعتقد أن هذا غير ممكن. فإنه يعرف فقط الأنواع الأساسية: string / number / object / array

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top