我想将用户输入表单记录到服务器上的文本文件中, 同样,onclick按钮触发一个函数从另一个服务器提供状态结果,这很好。如何让按钮触发2功能正常。如果我使用提交类型按钮,则返回功能不起作用。 如何通过一次点击来解决这些问题?
html:
<form action="" method="POST"><input class="input" type="text" name="search" id="search" value="" size="13" height="20" width="150" maxlength="13" id="ItemCodeNoPopup" dir="ltr" autocomplete="on">
<input type="button" value="חפש" name="button" align="absmiddle" border="0" alt="submit" onclick="showDiv(); logger();"></form>
post.js:
document.getElementById('quickContactForm')
$(document).ready(function(){
//$("#hiddenDiv").hide();
});
function showDiv(){
var str=$("#search").val();
var url="action.php?show="+str;
console.log('url'+url);
$.get(url,function(data,status){
// alert("Data: " + data + "\nStatus: " + status);
$("#hiddenDiv").html(data);
$("#hiddenDiv").show();
});
function logger(){
var str=$("#search").val();
currentTime = new Date().getTime();
console.log(currentTime);
data = [currentTime,str];
$.post('logger.php',function(data){
});
}
action.php效果很好。
logger.php
<?php
$Date = date('Y-m-d H:i:s');
var str=$("#search").val();
var ip=$_SERVER['REMOTE_ADDR'];
$file = fopen("log.txt","a+");
fwrite($file,$str,$ip);
fwrite($file,$Date. "\n");
fclose($file);
print_r(error_get_last());
}
?>
答案 0 :(得分:0)
如果第一个功能成功,您可以执行第二个功能的回调。
document.getElementById('quickContactForm')
$(document).ready(function(){
//$("#hiddenDiv").hide();
});
function showDiv(){
var str=$("#search").val();
var url="action.php?show="+str;
console.log('url'+url);
$.get(url,function(data,status){
// alert("Data: " + data + "\nStatus: " + status);
$("#hiddenDiv").html(data);
$("#hiddenDiv").show();
//callback to logger once the first function is completed
logger();
});
function logger(){
var str=$("#search").val();
currentTime = new Date().getTime();
console.log(currentTime);
data = [currentTime,str];
$.post('logger.php',function(data){
});
}
您可以从onclick中删除记录器以检查
答案 1 :(得分:0)
如果logger.php不依赖于action.php的结果,我建议在action.php中调用logger.php。因此,您不需要向服务器发送两个http请求。只有一个是必要的。
action.php的:
require_once('logger.php')