Forums / Developer / Ajax load of a form (content/action)

Ajax load of a form (content/action)

Author Message

Stéphane Le Merre

Thursday 22 July 2010 10:14:22 am

Hello,

I need to load the form to post comments on eZPublish articles : to do that, i'm using jquery framework. I'm always getting 404 errors when calling content/action with Ajax.

I'm using an empty layout, and try to load the form by making a POST query : something like this :

function loadAjaxContent(_url,_el,_params,_method)
    {
        var params = (_params==null)? {} : _params;
        var method = (_method==null)? 'post' : _method;

        $.ajax({
           type: method,
           url: _url,
           data: params,
           dataType: "html",
           cache: false,
           success: function(response){
             $('#'+_el).html(response);
           },
            error:function (xhr, ajaxOptions, thrownError){
                $('#'+_el).html("<p>Erreur lors du chargement : "+xhr.status+"</p>");
            }    
         });
    }

In the tpl file :

function newComment()
 {ldelim}
      var _params = 
      {ldelim}
             ClassIdentifier:"comment",
             NodeID:"{$node.object.main_node.node_id}",
             ContentLanguageCode:"{ezini( 'RegionalSettings', 'ContentObjectLocale', 'site.ini')}"
      {rdelim};
      loadAjaxContent({"layout/set/empty/content/action"|ezurl()},'new_comment',_params);
      return false;
{rdelim}

I'm simply passing the expected parameters to generate the template , note :

  • I do not get errors when i try to display my form with empty layout in navigator,
  • Ajax function is working : i can display some other parts that do not need to be compute by action view.

Am I missing something ?

P-S : Maybe it has an importance, this website is running ez4.0

http://www.ligams.com

Gaetano Giunta

Thursday 22 July 2010 2:53:49 pm

What about using firebug to debug the xhr request? It will tell you if the url that you're posting to is correct, as well as the request's payload.

In the example you posted I think you might be missing some parameters to post to content/action.

Principal Consultant International Business
Member of the Community Project Board

Ivo Lukac

Friday 23 July 2010 1:05:25 am

I think the problem could be in a fact that if you want to publish some content you need to have a draft already created.

Do you create a draft version of the object prior to publish?

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

Stéphane Le Merre

Friday 23 July 2010 6:57:41 am

Thanks for answering. I found out how to solve this by watching kernel/content/action.php, eZ uses the submit button name to control :

if ( $http->hasPostVariable( 'NewButton' ))
//...

So we must had a post param call NewButton in my case :

function newComment()
{ldelim}
    var _params = 
    {ldelim}
            ClassIdentifier:"comment",
            NodeID:"{$node.object.main_node.node_id}",
            ContentLanguageCode:"{ezini( 'RegionalSettings', 'ContentObjectLocale', 'site.ini')}",
            NewButton:"Ajouter%20un%20commentaire"
    {rdelim};
    loadAjaxContent({"layout/set/ajax/content/action"|ezurl()},'new_comment',_params);
    return false;
{rdelim}

And it worked.

Thanks Gaetano :)

http://www.ligams.com

Andy Caiger

Monday 25 April 2011 1:37:50 am

Sounds interesting...

I'd love to see the complete solution for this!

EAB - Integrated Internet Success
Offices in England, France & China.
http://www.eab.co.uk http://www.eab-china.com http://www.eab-france.com

eZ debug

Timing: Jan 29 2025 13:48:10
Script start
Timing: Jan 29 2025 13:48:10
Module start 'content'
Timing: Jan 29 2025 13:48:10
Module end 'content'
Timing: Jan 29 2025 13:48:10
Script end

Main resources:

Total runtime0.1074 sec
Peak memory usage2,048.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0064 587.9531180.8281
Module start 'content' 0.00640.0044 768.7813102.1016
Module end 'content' 0.01080.0965 870.8828532.2969
Script end 0.1073  1,403.1797 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00333.1091200.0002
Check MTime0.00121.1462200.0001
Mysql Total
Database connection0.00090.847210.0009
Mysqli_queries0.073768.59791410.0005
Looping result0.00080.74931390.0000
Template Total0.096289.510.0962
Template load0.00080.763710.0008
Template processing0.095388.774310.0953
Override
Cache load0.00050.508410.0005
Sytem overhead
Fetch class attribute can translate value0.00050.484210.0005
XML
Image XML parsing0.00020.166710.0002
General
dbfile0.00201.8169200.0001
String conversion0.00000.003630.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs