这是我的服务器端代码:
modify_emp.php
<?php
echo $_POST[id];
?>
这是我的html页面中的Javascript:
<script>
$(document).ready(function () {
var alreadyClicked = false;
$('.element').hover(
//mouseenter function
function(){
$('.element').click(
function(){
$(this).css("color","blue");
var objName = $(this).attr('name');
var objColumn = $(this).attr('id');
if(!alreadyClicked){
alreadyClicked = true;
$(this)
.prepend('<form method="POST" class="newInput"><input type="text" name="newInput" style="width:140px"></input></form>');
var elemento = $(".newInput");
var position = elemento.position();
$(".newInput").css({
'position': 'absolute',
'top': position.top + 15,
'opacity':0.9,
'z-index':5000,
})
.focus();
//on enter keypress
$(document).keypress(function(e) {
if(e.which == 13) {
$.ajax({
url: 'modify_imp.php',
type: 'post',
data: { id : objName, column : objColumn },
success: function(data, status){
$("#debug").html(data);
}
});
}
});
} //if (!alreadyClicked) end
}); //end mouseenter function
},
//mouseleave function
function () {
alreadyClicked = false;
$(this).css("color","red");
$(".newInput").remove();
}
); //end .hover
});
我的html页面末尾的debug
是<div id="debug"> </div>
,我想在服务器上显示我的回复。当我按“输入”时我实际上可以在div中看到0.1s的值,但随后它就会消失。
我已经尝试将返回值传递给本地或全局变量,但它没有用。
由于某种原因,response
内的值在0.1秒后丢失,即使我将其传递给其他地方的另一个变量。
有人可以解释我为什么以及如何存储&#34;服务器响应?
编辑:刚刚使用我的整个<script>
答案 0 :(得分:2)
由于您会立即看到结果,我会冒险猜测您的页面上有表单元素,当您点击返回时,它实际上是在提交表单。您可以简要地查看ajax操作的结果,然后您的表单提交,导致页面重新加载为新的空白页面。这是一个常见问题,并且始终存在这些相同症状。
您可以使用javascript删除表单元素或阻止表单的默认提交。
如果您向我们展示了更多实际的HTML,我们可以更具体地说明如何阻止表单提交。
答案 1 :(得分:1)
您可以通过调用表单标签中的函数来解决此问题,即
<form action="javascript:AnyFunction();">
你的代码在这里
答案 2 :(得分:0)
另一种方法是指定一个BUTTON来触发ajax,并在FORM外面设置按钮