Php ajax请求隐藏字段
我正在开发一个网站(只是为了好玩和学习使用jquery编程) 我想知道这有什么问题:Php ajax请求隐藏字段,php,jquery,Php,Jquery,我正在开发一个网站(只是为了好玩和学习使用jquery编程) 我想知道这有什么问题: $(window).unload(function(){ var myid = $('input#v1').attr('value'); // hidden var playauth = $('input#v2').attr('value'); // hidden var srvid = $('input#v3').attr('value'); // hidden var result
$(window).unload(function(){
var myid = $('input#v1').attr('value'); // hidden
var playauth = $('input#v2').attr('value'); // hidden
var srvid = $('input#v3').attr('value'); // hidden
var result = 'myid='+ myid +'&auth='+ playauth +'&srvid='+ srvid;
$.ajax({
type: "GET",
data: result,
url: "closing.php",
complete: function(data) {
alert(data.responseText);
}
});
});
我正在尝试更新数据库表。当我关上窗户时,什么也没发生。
使用此功能的早期版本:
window.onunload = function () {
var xhReq = new XMLHttpRequest();
var n = document.getElementById("v1").InnerHTML;
var o = document.getElementById("v2").InnerHTML;
var p = document.getElementById("v3").InnerHTML;
xhReq.open("GET", ("closing.php?myid=" + n + "&auth=" + o + "&srvid=" + p) , false);
xhReq.send(null);
var serverResponse = xhReq.responseText;
alert(serverResponse);
};
。。我看到了响应警报,但GET值“未定义”。
.... 可能是因为输入类型是隐藏的。。?
这是我的表格。。。也许我错过了什么??我对jquery/ajax真的很陌生。。请帮忙
<form method="get">
<input id="v1" type="hidden" name="val1" class="aget" value="<?php echo $_GET['myid']; ?>" />
<input id="v2" type="hidden" name="val2" class="bget" value="<?php echo $_GET['playauth']; ?>" />
<input id="v3" type="hidden" name="val3" class="cget" value="<?php echo $_SESSION['srvid']; ?>" />
</form>
改变
var myid = $('input#v1').attr('value'); // hidden
var playauth = $('input#v2').attr('value'); // hidden
var srvid = $('input#v3').attr('value'); // hidden
到
改变
var myid = $('input#v1').attr('value'); // hidden
var playauth = $('input#v2').attr('value'); // hidden
var srvid = $('input#v3').attr('value'); // hidden
到
你必须使用
.val()
而不是.attr('value')代码>您必须使用
.val()
而不是.attr('value')代码>没有,我有相同的结果..:(没什么,我有同样的结果……:(警告一句,当在卸载事件上触发ajax/xhttp调用时,无法保证在浏览器关闭页面时请求被取消之前能够通过。最好使用'onbeforeunload'
,并使用async:false
参数将ajax调用设置为syncronous…我还没有找到。)r自己也尝试过这样的事情。你的建议很好…但是函数不起作用…我必须把它放在$(文档)中吗.ready…等…?您指的是哪个函数不起作用?如果您指的是完成
回调,那么可能是在同步ajax调用结束后,浏览器阻止任何进一步的js直接运行…您是否至少调用了closing.php
?基本上,您正在尝试做的事情总是在进行这很棘手,尤其是当用户想要离开页面时,你需要做进一步的处理。将ajax调用设置为syncronous也可能有点危险,因为如果请求因任何原因挂起,浏览器也会挂起……明白了!我用分号代替了pebbl建议的逗号插入行。现在我明白了回答谢谢你…啊,我明白了…好的旧语法错误:)确保考虑到其他两个答案。如果你想用“jQuery方式”做事,你应该在代码中使用.val()…祝项目好运!警告一句,当在卸载事件上触发ajax/xhttp调用时,不能保证在浏览器关闭页面时取消请求之前请求会通过。最好使用'onbeforeunload'
并使用异步:false将ajax调用设置为syncronouse> 参数…我自己从来没有尝试过这样的事情。你的建议很好…但是函数不起作用…我必须把它放在$(文档)中吗.ready…等…?您指的是哪个函数不起作用?如果您指的是完成
回调,那么可能是在同步ajax调用结束后,浏览器阻止任何进一步的js直接运行…您是否至少调用了closing.php
?基本上,您正在尝试做的事情总是在进行这很棘手,尤其是当用户想要离开页面时,你需要做进一步的处理。将ajax调用设置为syncronous也可能有点危险,因为如果请求因任何原因挂起,浏览器也会挂起……明白了!我用分号代替了pebbl建议的逗号插入行。现在我明白了回答谢谢你…啊,我明白了…好的旧语法错误:)确保你考虑了其他两个答案。如果你想用“jQuery方式”做事,你应该在代码中使用.val()。祝项目好运!