[support] I would like to be able within a Drupal module's hook do an ajax call to a Java Servlet.
Seth Freach
sfreach at gmail.com
Thu Apr 15 13:45:41 UTC 2010
Of course, that $.ajax({...}) call below should be inside of a click()
handler on the button element or similar... but, you get the idea... :)
Seth
Seth Freach wrote:
> John,
> I'm not sure exactly what you mean by "a hook function". Are you
> implementing an already defined hook or are you defining a hook for
> other modules to implement?
> You can use drupal_add_js() anywhere you want JS to be inserted into a
> page, so yes, within hook functions too.
>
> If the resource is on a different server, that's fine, then the Drupal
> php will only be acting as a client in your situation. I think what
> you are looking for is a way to write php code that will get
> translated into JS ajax code magically via the platform? That does
> happen in some platforms (such as CakePHP) but not in Drupal 6. In
> Drupal 6, there is some integration between the form api and AHAH
> calls (see:
> http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6#ahah)
> but if you want to do pure AJAX, you'll need to write the JS calls
> and success handler yourself and then add that JS code to the page
> with drupal_add_js().
>
> Example of a form function:
> <?php
> function example_my_form() {
> $form['email'] = array(
> '#type' => 'textfield',
> '#title' => t('E-mail'),
> '#attributes' => array('id' => 'example-my-form-email');
> );
> $form['bttn'] = array(
> '#type' => 'button',
> '#value' => t('Click Me'),
> '#attributes' => array('id' => 'example-my-form-button');
> );
> $form['div'] = array(
> '#value' => '<div id="example-my-form-div"></div>',
> );
>
> $js = "
> Drupal.behaviors.example = function() {
> $.ajax({
> url : 'path/to/my/external/tomcat/resource?email=' +
> $('#example-my-form-email').val(),
> success : function(data) {
> // parse the return data and add it to the div or whatever...
> $('#example-my-form-div').html(data.someValue);
> }
> });
> }
> ";
> drupal_add_js($js, 'inline');
>
> return $form;
> }
> ?>
>
>
> If you want to do AJAX in Drupal 7, you can use the above approach, or
> have a look again at the link in my first email.
>
> Seth
>
> John Mitchell wrote:
>> So you start with a form and within the form you use drupal_add_js to
>> embed the ajax within the form. Correct?
>>
>> If I have a custom module that has a hook function and within the hook
>> function can I just use drupal_add_js to do an ajax call?
>>
>> Sorry for the stupid questions I am new to Drupal and php.
>>
>> Thanks,
>>
>> John
>>
>> On 4/15/10, Jamie Holly <hovercrafter at earthlink.net> wrote:
>>
>>> Look at drupal_add_js
>>>
>>> http://api.drupal.org/api/function/drupal_add_js
>>>
>>>
>>> Jamie Holly
>>> http://www.intoxination.net
>>> http://www.hollyit.net
>>>
>>>
>>> On 4/15/2010 6:51 AM, John Mitchell wrote:
>>>
>>>> I am trying to make this as simple as possible:
>>>>
>>>> As an example (listed below) I have a javascript ajax call to a java
>>>> servlet within my existing Apache Tomcat web application not Drupal.
>>>> All that would need to be modified would that the URL have to be the
>>>> full path.
>>>>
>>>> Is their a way within Drupal to embed a javascript call similar to the
>>>> one listed below?
>>>>
>>>> Thanks,
>>>>
>>>> John
>>>>
>>>> <script type = "text/javascript">
>>>> function download(link){
>>>> var email = document.getElementById('email');
>>>> var xmlHttpReq = new XMLHttpRequest();
>>>> var url = 'ecommerce?command=serve&name=' + link + '&email=' +
>>>> email.value;
>>>> xmlHttpReq.open('post', url, true);
>>>> xmlHttpReq.onreadystatechange = function() {
>>>> if (xmlHttpReq.readyState != 4) {
>>>> return;
>>>> }
>>>> else {
>>>> var responseText = xmlHttpReq.responseText;
>>>> return false;
>>>> }
>>>> }
>>>> xmlHttpReq.send(null);
>>>> }
>>>> </script>
>>>>
>>>>
>>>>
>>>> On 4/15/10, sumeet pareek<positivecharge at gmail.com> wrote:
>>>>
>>>>> Does this help - http://drupal.org/node/44895 ?
>>>>>
>>>>> On Thu, Apr 15, 2010 at 3:43 PM, John Mitchell<mitchelljj98 at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Let me rephrase my question: I currently within the same server have
>>>>>> Apache/Drupal and Apache Tomcat/Java. I would like to be able within
>>>>>> a Drupal module's hook do an ajax call to a Java Servlet.
>>>>>>
>>>>>> How would I do this within Drupal version 6?
>>>>>>
>>>>>> For future reference how would I do this within Drupal version 7?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> John
>>>>>>
>>>>>> On 4/14/10, Seth Freach<sfreach at gmail.com> wrote:
>>>>>>
>>>>>>> John Mitchell wrote:
>>>>>>>
>>>>>>>> How would I do an ajax call within my own custom module?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> John
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> You will probably need 2 menu items:
>>>>>>> - The first to define the page that will be the ajax client. Ie,
>>>>>>> the
>>>>>>> url of the page that this all happens on, a regular drupal page that
>>>>>>> has
>>>>>>> called drupal_add_js() to add some JS code that will do a
>>>>>>> $.ajax({...});
>>>>>>> call (or other jquery asynchronous call). This menu item might not
>>>>>>> be
>>>>>>> needed though if the JS is added in a block, or inserted via
>>>>>>> hook_form_alter or hook_nodeapi, etc.
>>>>>>> - The second menu item will define the ajax server. It should be
>>>>>>> 'type'=>MENU_CALLBACK and have the appropriate access checks defined
>>>>>>> as
>>>>>>> well. The callback function associated with this path should,
>>>>>>> instead
>>>>>>> of returning themed output, end with: drupal_json(array(...));
>>>>>>> exit();
>>>>>>> where the array(...) is an associative array that you want to hand
>>>>>>> back
>>>>>>> to the calling page in JSON format.
>>>>>>>
>>>>>>> If you're doing this for D7, look at:
>>>>>>>
>>>>>>> http://api.drupal.org/api/drupal/developer--examples--ajax_example--ajax_example.module/7
>>>>>>>
>>>>>>> Seth
>>>>>>> --
>>>>>>> [ Drupal support list | http://lists.drupal.org/ ]
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> John J. Mitchell
>>>>>> --
>>>>>> [ Drupal support list | http://lists.drupal.org/ ]
>>>>>>
>>>>>>
>>>>> --
>>>>> Cheers
>>>>> Sumeet Pareek
>>>>> --
>>>>> [ Drupal support list | http://lists.drupal.org/ ]
>>>>>
>>>>>
>>>>
>>> --
>>> [ Drupal support list | http://lists.drupal.org/ ]
>>>
>>>
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/support/attachments/20100415/b561a849/attachment.html
More information about the support
mailing list