【问题标题】:Shiny - store javascript variable to mysql databaseShiny - 将 javascript 变量存储到 mysql 数据库
【发布时间】:2015-10-05 10:18:08
【问题描述】:

我正在使用闪亮的服务器。
我的应用程序有一个搜索框输入。根据该输入,输出是具有可点击链接dataTable
我的应用程序的 ui.r 包含一个 JavaScript 函数,该函数在单击链接时设置变量的值。让变量为 clickedLink。现在我想将这个链接值存储到 mysql 或任何其他数据库。这个怎么办?

我试过ajax,php都没用。这个问题描述了我所做的:saving json data to json file using ajax PHP 但我猜 php 文件不适用于闪亮。请帮忙。

编辑 1

添加到 ui.R 的代码

  tags$script(HTML("
     function clickFunction(clickedLink){
        //alert(clickedLink);
        var cl = clickedLink;
        Shiny.onInputChange('clickedLink',cl);
     }
  "))

添加到 server.R 的代码

observe({
    print(input$clickedLink)

  })

编辑 2
仅供参考,链接格式为

<a onclick="clickFunction(this.href); " target="_blank" href="http://SOMETING.com">SOMETHING</a>

【问题讨论】:

    标签: javascript jquery mysql r shiny


    【解决方案1】:

    我假设您知道在 R 中获取变量后如何保存它。如果不知道,请使用 RMySQL 包并阅读他们的教程 - https://github.com/rstats-db/RMySQL

    因此,您的主要问题是将 javascript 变量导入 R。为此,您可以使用 Shiny.onInputChange。这里有一个简短的简单教程https://ryouready.wordpress.com/2013/11/20/sending-data-from-client-to-server-and-back-using-shiny/

    基本上,在 javascript 中你会有 Shiny.onInputChange("jsvar", clickedLink) 然后您可以将 jsvar 视为常规反应输入,因此在 R 中您可以执行 `observe({ saveToDb(input$jsvar) }) (您必须定义 saveToDb)

    【讨论】:

    • 见编辑 1。@daattali
    • 对,这正是我的建议,看起来你快到了。现在你只需要使用 RMySQL 与数据库对话
    • 但它没有返回任何东西。仅空。查看详细信息,我添加了一些内容。
    • @alloyeduniv 当您说任何事情都不起作用时,请通过一个最小的可重现示例来证明这一点。
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多