2010-02-05 4 views
0

d'information: je ne sais rien sur la programmation webUtiliser Sinatra et rubis à l'interface à boutons HTML

Contexte problème: J'ai un test de chambre d'essai environnemental des ordinateurs embarqués à différentes températures. Il est contrôlé par une application Windows. Je peux contrôler la chambre via ruby ​​et l'interface Win32API de l'application de contrôle. La chambre est loin de mon bureau et je surveillerais à distance l'état et déclencherais un changement via une interface Web. Sinatra, il est facile de montrer l'état via un serveur web.

Mon problème: Je souhaite cliquer sur un bouton de la page d'état et envoyer une commande via Sinatra et Ruby à l'application sans passer à une autre page. Je ne peux pas trouver des exemples ou des informations pour quelque chose comme ça.

La réponse: Vous pouvez utiliser Ajax (comme dans la réponse acceptée) mais je vais avec poste et recharger la page. C'est beaucoup plus simple mais pas aussi lisse.

+0

Vous voulez utiliser ajax ... mais peut-être qu'avant d'en apprendre un peu sur le développement web, ce n'est pas si simple. – marcgg

Répondre

1

Avez-vous déjà un formulaire qui POSTE à un gestionnaire sinatra et fait ce que vous voulez?

Si tel est le cas, vous pouvez facilement faire un ajax en utilisant jQuery.

  1. Ajouter jquery.js à votre répertoire public & requerra de la mise en page

  2. Ajouter quelques js pour poster à votre gestionnaire lorsque le bouton est cliqué.

    // assuming your form has id=myform 
    // defines a callback on submission of the form #myform. 
    $("#myform").submit(function() { 
        //posts the contents of the form to /action using ajax 
        $.post("/action", $("#myform").serialize(), function(result){ 
        // assuming result is a string of the updated data in html 
        // and assuming that your data goes in an element with the id data-table 
        $("#data-table").html(result) 
        }); 
        return false; // prevents the form from submitting normally 
    }); 
    

jquery documents pour

1

Je veux [...] envoyer une commande via (le serveur) [...] sans passer à une autre page

Ceci est connu comme Ajax et est généralement mis en œuvre à l'aide XMLHttpRequest.