代码之家  ›  专栏  ›  技术社区  ›  Gerhard

使用Sinatra和Ruby连接HTML按钮

  •  0
  • Gerhard  · 技术社区  · 15 年前

    披露: 我对网络编程一无所知

    问题背景: 我有一个环境测试室在不同温度下测试嵌入式计算机。它由Windows应用程序控制。我可以通过Ruby和控制应用程序的win32api接口来控制会议室。会议室离我的办公室很远,我会远程监控状态并通过Web界面触发更改。Sinatra使通过Web服务器显示状态变得容易。

    我的问题: 我想点击状态页面上的一个按钮,通过Sinatra和Ruby向应用程序发送一个命令,而不切换到其他页面。我找不到类似的例子或信息。

    答案是: 您可以使用Ajax(在接受的答案中),但我将使用Post并重新加载页面。它很简单,但没有那么光滑。

    2 回复  |  直到 15 年前
        1
  •  1
  •   BaroqueBobcat    15 年前

    您是否已经有了一个发布到Sinatra处理程序的表单,并且执行您想要的操作?

    如果是这样,您可以使用jquery很容易地使它半开。

    1. 将jquery.js添加到公共目录,并从布局中要求它

    2. 添加一些JS以在单击按钮时发布到处理程序中。

      // 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文档

        2
  •  1
  •   Quentin    15 年前

    我想[_]通过(服务器)发送命令[_]而不切换到其他页面

    这被称为 阿贾克斯 通常使用 XMLHttpRequest .