【发布时间】:2014-04-07 03:41:28
【问题描述】:
如果这是可能的,为什么它不起作用? 代码太多了,我只放伪代码,不告诉我这是语法错误,因为所有元素都是独立工作的,问题在于将它们集成在一起时。
我有:
设置:
1) - 具有各种输入和单个提交按钮的 html 表单。像这样:
<form action="" method="POST">
<input type="submit"></input>
</form>
2) - 用于提交和获取表单输入值的 PHP 代码,它正在工作。例如:
<?php if($_SERVER['REQUEST_METHOD'] == 'POST') {
// get values here, which is working //
// database inserts, which are working too //
?>
3) - 运行基于客户端的测试并在 console.log 中打印输出的 Javascript js_function()。例如:
<script>
(function(w) {
// code that runs //
// prints results on console.log() //
}
</script>
4) - 一个 Ajax 函数(在 Javascript 主函数中,在结束标记之前的末尾),它获取在 console.log 中打印的变量并将其即时发布到数据库,如下所示:
var JSoutput = "js_function_return";
function loadXMLDoc(){
// check browser, status and response, etc //
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
// use a div to print response, which works all the time
}
xmlhttp.open("GET","boguspage.php?JSoutput="+JSoutput,true);
xmlhttp.send();
}
5) - 一个虚假的 php 页面,其中收集了 Ajax 查询的 GET 结果并将其传递到数据库。这行得通。
工作原理:
如果我把我的javascript函数加载到bodybody onload="js_function()"和Ajax函数onclick="loadXMLDoc()"在“提交”按钮上,一切都可以无缝运行,没有问题。所以,这不是语法问题,请在回答之前仔细阅读。
看似不可能的事情:
1) - 我需要在单个 POST 上同时执行 Javascript 函数和 Ajax 函数,或者,
2) - 将 Javascript 移动到按钮的 onclick 事件中,并让 Ajax 函数等待 Javascript 函数执行,并在完成后自行对数据库执行自动 POST 或 GET .
我不知道如何完成。我已经尝试了 3 天,虽然每件作品都单独工作或加载到正文中,但在提交时加入它们会导致第一个 Javascript 函数执行速度过快,因此 Ajax 调用返回空,并且出现 PHP 未定义变量错误。但是,如果我在正文中首先执行 Javascript,则不会发生这种情况。
但我需要在一次提交时完成所有操作。我怎样才能做到这一点?
【问题讨论】:
-
我对您的要求感到困惑? AJAX 旨在弥合客户端和服务器之间的差距。又名 Javascript、HTML 和 PHP。那么你想用 Javascript 做什么,因为这是非常模糊的伪代码
-
我需要在提交时发布 Javascript 函数的结果。也就是说,让 Javascript 在单击时运行测试,让 Ajax 收集结果并将其发布到数据库。它没有发生,因为 Javascript 函数需要时间来产生结果。我需要在 Javascript 工作时保持 Ajax 的执行,并在完成后触发它。但这无需再次单击。我不知道如何做到这一点。
-
您的意思是,调用javascript onclick 并在javascript 函数中实现Ajax 调用?如果是,这就是我正在做的事情。但它不起作用。 Ajax 执行速度太快。 javascript函数需要大约8秒才能完成。理想情况下,有没有办法延迟 Ajax 调用?
-
在你的函数上使用回调,调用 ajax 请求 stackoverflow.com/questions/4700424/…
-
我不明白他在那个答案中做了什么。我有: Ajax(){ //Ajax 代码 } js_function(){ //JS 代码;阿贾克斯()}
标签: javascript php ajax database post