我的主页上有一个简单的表单( index.php ),只需一个用户输入。
_details
然后将该输入传递给 run.php ,其中显示内容并将其插入MySQL数据库。
但是,我需要在该用户输入上运行JavaScript函数,然后将结果(从JavaScript函数)输入到数据库中(以便将值从JavaScript传递给PHP)。
我最初在 run.php 中使用了JavaScript,它用于计算和显示值,但我无法将值传递给PHP以插入数据库。
根据我的阅读,您无法在同一页面上将JavaScript值传递给PHP,因为它需要某种<form action="/run.php" method="POST" target="_blank"
<input type="text" name="userinput">
<button type="submit">Run!</button>
</form>
或POST
,所以我&#39 ; m尝试在主页 index.php 上运行JavaScript函数,然后使用隐藏的输入字段将值POST到 run.php 文件。
GET
该函数是JavaScript Promise:
<input id='hidden_input' type='hidden' name='final-calc' value='random(userinput)' />
我遇到的两个问题是:
我只能在用户输入值并提交表单后获得function random(userinput) {
....
.then(function(userinput) { // Function needs to use the userinput from the form
// calculations
return X //(X being any random value)
}
}
值,因此我不相信我可以将userinput
值传递给JavaScript函数仍然POST返回值?
JavaScript函数是一个异步的Promise,但显然,这可能没有效果 - 所以它可能不是问题。
答案 0 :(得分:0)
这里的关键是AJAX。您必须使用普通JS检索用户输入,进行所需的任何计算,然后将结果发送到PHP脚本。我留下了一个小提琴:https://jsfiddle.net/k5xd54eu/1/
<input type="text" id="userinput" name="userinput"/>
<button onclick="inputhandler();">TEST</button>
<script>
function inputhandler() {
var text = document.getElementById('userinput').value;
alert(text);
/*DRAGONS BE HERE*/
/*THEN*/
/*USE AJAX HERE TO PASS THE RESULTS TO PHP SCRIPT*/
}
</script>
我没有解释如何实现AJAX调用来发送结果,主要是因为它也是一种品味问题。例如,你可以使用普通JS或jQuery这样的库(这是我个人的偏好,因为它非常干净和简单)。看看这里:
http://api.jquery.com/jquery.ajax/
在这里:
https://www.w3schools.com/jquery/jquery_ajax_intro.asp
了解更多信息。
编辑:由于我已经提到过AJAX,因此包含一些代码更为正确。所以我通常用于简单的POST(它基于jQuery库,所以要小心包含它):
var url = 'ajaxhandler.php';
var stuff = '1234abcd';
$.ajax({
type: "POST",
url: url,
data: {stuff: stuff},
success: function (data) {
/*Do things on successful POST*/
}
});