ZF-4685: ZenX JQuery callback function names do not pass down correctly

Description

I noticed that the callback function names do not pass to the actual JQuery call correctly.

Example:

I have in my View a code like this:


    $params = array(
                    "resize" => "doMyThingAtResize",
                    "title" => "My Zend Dialog",
                    );
                    
    echo $this->dialogContainer("dialog1", "Some text", $params, array('class' => 'flora'));

It will produce a JQuery call like this:


$("#dialog1").dialog({"resize":"doMyThingAtResize","title":"My Zend Dialog"});

This does work in other ways, but the callback for resize event does not get called as the value is text and not a function name.

What we would need it to produce would be like this:


$("#dialog1").dialog({"resize": doMyThingAtResize,"title":"My Zend Dialog"});

Same thing doMyThingAtResize without the quotes.

Problem goes AFAIK goes to Zend_Json and PHP json_encode as they will wrap the value with quotes, but I don't think this can be solved there. One solution might be to add a separate function or parameter to add those callback function names. This means some manual code work to merge these into the variables passed to the JQuery call, but I don't see many other options.

Comments

Hello,

this is a known issue which will be (hopefully) resolved for the 1.7 release with the Zend_Json_Expr proposal.

Currently you cannot hand down callbacks via Zend_Json.

Assigning to Ben Eberlei

Fixed and scheduled for 1.8