【发布时间】:2017-03-09 10:23:10
【问题描述】:
我的主页上有一个简单的表单 (index.php),它需要一个用户输入。
<form action="/run.php" method="POST" target="_blank"
<input type="text" name="userinput">
<button type="submit">Run!</button>
</form>
然后将该输入传递给 run.php,在此显示内容并将其插入 MySQL 数据库。
但是,我需要在该用户输入上运行 JavaScript 函数,然后将结果(来自 JavaScript 函数)输入到数据库中(因此将值从 JavaScript 传递到 PHP)。
我最初在 run.php 中有 JavaScript,用于计算和显示值,但我无法将值传递给 PHP 以插入数据库。
根据我的阅读,您不能在同一页面上将 JavaScript 值传递给 PHP,因为它需要某种 POST 或 GET,所以我试图在主页 index.php 然后使用隐藏的输入字段将值 POST 到 run.php 文件。
<input id='hidden_input' type='hidden' name='final-calc' value='random(userinput)' />
函数是 JavaScript Promise:
function random(userinput) {
....
.then(function(userinput) { // Function needs to use the userinput from the form
// calculations
return X //(X being any random value)
}
}
我遇到的两个问题是:
我只能在用户输入值并提交表单后才能获得
userinput值,所以我不相信我可以将userinput值传递给JavaScript 函数并仍然POST 返回的值?JavaScript 函数是一个异步 Promise,但显然,这可能没有效果 - 所以它可能不是问题。
【问题讨论】:
-
据我了解,您想在 PHP 脚本中发布一些变量,然后使用 JS 对这些变量进行操作。如果是这样,你为什么不在第一阶段用 JS 进行计算,然后将结果 POST 到 PHP?
-
@Arkoudinos 你为什么不用JS在第一阶段进行计算,然后将结果发布到PHP?这就是我想要做的。但是,JS 函数需要
userinput进行计算。所以我不知道如何获取userinput然后发布结果。 -
@KausharAlam 感谢您的资源。如何确保 JavaScript 仅在表单提交后运行?因为函数需要用户输入值来进行计算。
标签: javascript php database forms input