Calling a commandline function using the onclick button

Hello everyone,

I’ll start by describing what I’m doing and saying that I am a newbie.
In my ROR (2.1.2) application, would like to send read data from a text
field using the onclick tag to a python script I wrote.
The problem I encounter is with the onclick tag. I used the system()
function to call the python script, but it doesn’t function. The python
script is only called when I reload the page and not when I click on the
send button.
Who can help me or tell me how to better call the python script once I
click on the send button.
I’ll be grateful for your help.

This is what my code looks like:

On Mon, Sep 07, 2009 at 09:44:31PM +0200, Ngassa C. wrote:

Who can help me or tell me how to better call the python script once I
&’) %>" />

I have no idea if calling system() from within an ERb template should
work
or not, it seems like a pretty wild idea :smiley:

I would try making a controller action that the form submits to, and
have
the controller make the system call with the data. I haven’t tested that
but
I would give it a try if possible.

HTH

Matt

On Sep 7, 8:44 pm, Ngassa C. [email protected]
wrote:

click on the send button.

I think you have a basic misunderstanding of how erb templates work.
Anything in <% or <%= tags is evaluated when the template is rendered

  • that is what rendering an erb template means. Furthermore, an
    onclick options can only be a chunk of javascript.
    As Matt says, you need to write a controller action that your form is
    submitted to. Furthermore, be careful of the data you receive - if the
    example you posted worked it would allow a user to run arbitrary shell
    commands on your server.

Fred

I’ll try writing a controller action.

The idea with the controller action was really a good one.
Now I can call the pythonscript without problem while clicking on a
link, but it still cannot read from the form.
How can I do this, or what should be written at the place of :msg =>
“$(‘txt_message’).value”.
This is what my code now looks like:

<%=link_to_remote 'send', :url => { :action => 'sendmsg', :controller => 'contacts', :partner => @partner, :msg => "$('txt_message').value" } %>

Carine

As Matt says, you need to write a controller action that your form is
submitted to.

Ok, thanks for the quick reply.
I’ll try writing a controller action.

Thanks to you all,

I got my problem solved using the form_tag and I could query the entry
from the field using params[:myparameter] and use them in the controller
action. Using :with also functioned.

Carine

On 8 Sep 2009, at 12:59, Ngassa C. wrote:

I’ll try writing a controller action.

The idea with the controller action was really a good one.
Now I can call the pythonscript without problem while clicking on a
link, but it still cannot read from the form.
How can I do this, or what should be written at the place of :msg =>
“$(‘txt_message’).value”.

Read up about the :with option to link to remote (I wrote a bit about
it a while ago:
http://www.spacevatican.org/2008/5/17/with-or-without-you-link_to_remote-s-mysterious-parameter
)

Fred