2014-03-03 47 views
0

我有一种表单,只要用户在电话字段上输入某些内容,字段值就会发送到一个php,它将为该电话字段获取任何可能的名称和电子邮件并将其存储在PHP会话中变量:jquery post不会触发两次

这是我的jQuery有电话领域:

$('#tel').on('keyup', function() { 
$.post('backproc.php?tel='+$('#tel').val()); 
$('#nombres').val('<?php echo $_SESSION['xnombre'];?>'); 
}); 

我backproc.php正常地接收到信息,妥善检索了从数据库中,无论是什么I型,它总是被由php查询成功发送和处理。

问题是,根据我的代码,每次我在电话字段上释放一个键时,nombres字段的值应根据我对会话变量所做的任何更改而发生变化,而这种情况只会发生一次,更糟糕的是,当它触发时,它会显示前一个会话变量值,而不是最后一次获取的值,以及总是显示最后一个获取值的操作方法。

回答

3

您需要呼应$ _SESSION [“xombre”]的内容backproc.php并把它jQuery的喜欢

$.post('backproc.php?tel='+$('#tel').val(), function(data) { 
    $('#nombres').val(data); 
}); 

请参阅http://api.jquery.com/jQuery.post/

+0

谢谢2cent!你的代码真的帮了很多! –

0

问题是您的<?php echo $_SESSION['xnombre'];?>代码是在Javascript甚至被发送到您的浏览器之前在服务器上生成的。 PHP <??>标签之间的代码根本不会发送到客户端 - 它完全由服务器处理。但是,Javascript当然是在客户端进行处理的。

您在服务器端和客户端代码之间感到困惑。

如果您查看网页源代码并查看您的Javascript,您会明白我的意思。

编辑:只是意识到我告诉过你这个问题,没有给出答案! 2cents的答案是正确的,所以我不会重复他已经说过的话。

+0

谢谢丹!它真的帮了我很大的忙,以避免在JavaScript之前生成的代码部分,我根据2cent的答案根据你告诉我的和现在一切正常的情况进行了修复,谢谢! –

0

keydown 用户按下某个键时触发。它在用户保持按下的状态下重复。 keypress 将实际字符插入到文本输入中时触发。它在用户保持按下的状态下重复。

你好,“keydown”事件适用于你的情况(不要使用密钥,因为它释放密钥后立即触发)。 使用的keydown(我相信它的工作原理,但如果它不使用按键)