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”)中的代码它以什么方式不工作?你犯了什么错误?哦。它工作得很好,实际上我忘记了删除事件处理程序中的变量,这就是它不工作的原因。现在它工作得很好。非常感谢。啊,那就不用担心了——很高兴事情解决了。