• Home
  • New Entries
  • Popular Entries
  • Submit a Story
  • About

Add Drupal Forms using AJAX ...

Something very easy to do in drupal is adding form object to the content of your page without doing a page refresh.  I needed to add functionality so that an application form was displayed to a user when they clicked the Apply link.

Using JQuery we can “intercept” a client click of a link.  Add a .js file to which ever module you are editing, and add the following:

     if (Drupal.jsEnabled) { 

      $(document).ready(function () {
        $(’a.apply-link’).click(function () {

          var submitApplication = function(data) {
            $(’div.apply-link’).html(data.html);
          }
        $.ajax({
          type: ‘POST’,
          url: this.href,
          dataType: ‘json’,
          success: submitApplication,
          data: ‘js=1′
        });
        return false;
      });
      });
    }

So when a link with a class “submit-application” is clicked an ajax/json call is made to the url.  Now make sure the js is included somewhere in your module code by using drupal_add_js().
Now all we have to do is make sure the page renders as json if an ajax call is made.  Add this  code just before the _page exits (but not after the exit(); !).

     if (!empty($_POST[js])) {
        $html = drupal_get_form(’job_posting_application_form’, array($node->nid, $node->title, $node->job_posting_email));
        drupal_json(array(
        ‘html’ =>  $html
        )
        );

Your link should be replaced with the form.
If you want to add a little bit of animation use the jQuery animation options.  Instead of just replacing the link, make it fade in:

    $(’div.apply-link’).hide();
    $(’div.apply-link’).html(data.html);
    $(’div.apply-link’).fadeIn();

 Original Source:
http://jarchowk.wordpress.com

AddThis Social Bookmark Button

Posted at 09:50:39 am | Permalink | Posted in Ajax  Tutorials  

Related Stuff

  • MooV: Using cutting edge Video phones and Software Video Phones - coupling all that with VoIP and empowering the disabled.

  • Moo Telecom: VoIP communications made easy - Ring anyway with the fun and ease of using a normal phone

  • TagR:Mobile Social Network with Real Time Locations Based services, and Ambience Intelligence, VoiP, IM, Skype, Googletalk, Mapping, Flickr, Events, Calendaring, Scheduling, SecondLife Support

  • ClearSMS : ClearSMS is a Web-based application that lets you send bulk SMS messages to your customers, contacts, or just about anyone.

  • Jajah:jah is a VoIP (Voice over IP) provider, founded by Austrians Roman Scharf and Daniel Mattes in 2005[1]. The Jajah headquarters are located in Mountain View, CA, USA, and Luxembourg. Jajah maintains a development centre in Israel.

  • Skype: It’s free to download and free to call other people on Skype. Skype the number one voice over ip software

  • PrivatePhone: a free local phone number with voicemail and messages you can check online or from any phone.

Top Stuff

e-messenger

MSN Web Messenger

eBuddy

ASP.NET Ajax CalendarExtender and Validation

AIM Express

Ajax Tools for ASP.NET Developers



About Ajaxlines

Ajaxlines is a project focused on providing its audience with a database of most of Ajax related articles, resources, tutorials and services from around the world.

Its purpose is to showcase the power of Ajax and to act as a portal to the Ajax development community.


Search


Topics

  • .Net (176)
  • Ajax (112)
  • Ajax Games (10)
  • Articles (95)
  • Bookmarking (35)
  • Calendar (21)
  • Chat (45)
  • ColdFusion (3)
  • CSS (84)
  • Email (23)
  • Facebook (84)
  • Flash (20)
  • Google (54)
  • Html (29)
  • Image (12)
  • International Calls & VOIP (7)
  • Java (58)
  • Javascript (280)
  • jQuery (200)
  • JSON (75)
  • Perl (2)
  • PHP (172)
  • Presentation (19)
  • Python (3)
  • Resources (2)
  • RSS (8)
  • Ruby (32)
  • Storage (4)
  • Toolkits (103)
  • Tutorials (227)
  • UI (11)
  • Utilities (174)
  • Web2.0 (18)
  • XmlHttpRequest (29)
  • YUI (13)

© 2006 www.ajaxlines.com. All Rights Reserved. Powered by IRange