Javascript 使用jquery发布变量并在其他页面接收
我想将变量Javascript 使用jquery发布变量并在其他页面接收,javascript,jquery,post,Javascript,Jquery,Post,我想将变量id发布到页面。我正在尝试以下代码,但无法获取id值,它显示undefined function box(){ var id=$(this).attr("id"); $("#votebox").slideDown("slow"); $("#flash").fadeIn("slow"); $.ajax({ type: "POST", //I want to post the "id" to the rating page.
id
发布到页面。我正在尝试以下代码,但无法获取id值,它显示undefined
function box(){
var id=$(this).attr("id");
$("#votebox").slideDown("slow");
$("#flash").fadeIn("slow");
$.ajax({
type: "POST",
//I want to post the "id" to the rating page.
data: "id="+$(this).attr("id"),
url: "rating.php",
success: function(html){
$("#flash").fadeOut("slow");
$("#content").html(html);
}
});
}
此函数在以下代码中调用。在下面的代码中,id也被发布到页面vows.php
,它工作正常,但在上面的代码中,当我试图将id发布到rating.php
页面时,它不会发送
$(function(){
$("a.vote_up").click(function(){
the_id = $(this).attr('id');
$("span#votes_count"+the_id).fadeOut("fast");
$.ajax({
type: "POST",
data: "action=vote_up&id="+$(this).attr("id"),
url: "votes.php",
success: function(msg)
{
$("span#votes_up"+the_id).fadeOut();
$("span#votes_up"+the_id).html(msg);
$("span#votes_up"+the_id).fadeIn();
var that = this;
box.call(that);
}
});
});
});
rating.php
<?
$id = $_POST['id'];
echo $id;
?>
html部分是:
<a href='javascript:;' class='vote_up' id='<?php echo $row['id']; ?>'>Vote Up!</a>
我会通知您任何帮助。如果您还没有安装,我想您应该先安装
接下来,我将把id输出到控制台:
var id=$(this).attr("id");
console.log(id);
很有可能身份证不是你想象的那样。如果正确,您可以继续阅读
来自jquery文档
示例:从中发出结果警报
正在请求test.php和其他
数据的有效负载(HTML或XML,
取决于返回的内容)
这可能会奏效:
$.post("rating.php", { id: id }, function(data) {
console.log(data);
});
如果您还没有安装,那么我认为您应该先安装
接下来,我将把id输出到控制台:
var id=$(this).attr("id");
console.log(id);
很有可能身份证不是你想象的那样。如果正确,您可以继续阅读
来自jquery文档
示例:从中发出结果警报
正在请求test.php和其他
数据的有效负载(HTML或XML,
取决于返回的内容)
这可能会奏效:
$.post("rating.php", { id: id }, function(data) {
console.log(data);
});
这里的问题在于AJAX事件处理程序上下文中的
内容。您的AJAX:
$.ajax({
type: "POST",
data: "action=vote_up&id="+$(this).attr("id"),
url: "votes.php",
success: function(msg)
{
$("span#votes_up"+the_id).fadeOut();
$("span#votes_up"+the_id).html(msg);
$("span#votes_up"+the_id).fadeIn();
var that = this;
box.call(that);
}
});
在success
处理程序中,this
不是事件处理程序中的元素。相反,它是来自AJAX请求的XMLHTTPRequest
对象。您需要在事件处理程序外部缓存该:
var that = this;
$.ajax({
type: "POST",
data: "action=vote_up&id="+$(this).attr("id"),
url: "votes.php",
success: function(msg)
{
$("span#votes_up"+the_id).fadeOut();
$("span#votes_up"+the_id).html(msg);
$("span#votes_up"+the_id).fadeIn();
box.call(that);
}
});
这里的问题在于AJAX事件处理程序上下文中的内容。您的AJAX:
$.ajax({
type: "POST",
data: "action=vote_up&id="+$(this).attr("id"),
url: "votes.php",
success: function(msg)
{
$("span#votes_up"+the_id).fadeOut();
$("span#votes_up"+the_id).html(msg);
$("span#votes_up"+the_id).fadeIn();
var that = this;
box.call(that);
}
});
在success
处理程序中,this
不是事件处理程序中的元素。相反,它是来自AJAX请求的XMLHTTPRequest
对象。您需要在事件处理程序外部缓存该:
var that = this;
$.ajax({
type: "POST",
data: "action=vote_up&id="+$(this).attr("id"),
url: "votes.php",
success: function(msg)
{
$("span#votes_up"+the_id).fadeOut();
$("span#votes_up"+the_id).html(msg);
$("span#votes_up"+the_id).fadeIn();
box.call(that);
}
});
你想从哪里弄到身份证?小心弄对了身份证。您拥有变量id,因此请使用该id,而不是重新生成数据属性的代码。我感觉“this”关键字并没有引用您认为的内容,而是发送了空数据。谢谢您的评论。我在调用函数的地方添加了额外的代码。请注意,当在其他代码中发布id时,它可以正常工作,但当我尝试在box()中发布时,它不能正常工作。您试图从何处获取id?请小心获取正确的id。您拥有变量id,因此请使用该id,而不是重新生成数据属性的代码。我感觉“this”关键字并没有引用您认为的内容,而是发送了空数据。谢谢您的评论。我在调用函数的地方添加了额外的代码。请注意,当id在其他代码中发布时,它可以正常工作,但当我尝试在box()中发布时,它不能正常工作。此.id
是安全的。。。这里不需要jQuery。我没有说它不安全,但它可以包含您希望它具有的另一个值(可能是未定义的值或其他值)。这个.id
是安全的。。。这里不需要jQuery。我没有说它不安全,但它可以包含您希望它具有的另一个值(可能是未定义的值或其他值)。谢谢您的回复。如您所见,我在函数中发布ID。。它工作得很好(我可以在vots.php上获得它),但是当我在代码中调用box()时,我尝试将box()中的相同ID发布到rating.php,我无法在那里获得ID。我试过你的答案,但还是不行。如果你能再看看我原来的帖子,我将不胜感激。@Billa我不太明白你在说什么。我认为,这是应该放在事件处理程序$(“a.vote_up”)中的代码代码>它以什么方式不工作?你犯了什么错误?哦。它工作得很好,实际上我忘记了删除事件处理程序中的变量,这就是它不工作的原因。现在它工作得很好。非常感谢。啊,那就不用担心了——很高兴事情解决了。谢谢你的回复。如您所见,我在函数中发布ID。。它工作得很好(我可以在vots.php上获得它),但是当我在代码中调用box()时,我尝试将box()中的相同ID发布到rating.php,我无法在那里获得ID。我试过你的答案,但还是不行。如果你能再看看我原来的帖子,我将不胜感激。@Billa我不太明白你在说什么。我认为,这是应该放在事件处理程序$(“a.vote_up”)中的代码代码>它以什么方式不工作?你犯了什么错误?哦。它工作得很好,实际上我忘记了删除事件处理程序中的变量,这就是它不工作的原因。现在它工作得很好。非常感谢。啊,那就不用担心了——很高兴事情解决了。