如何使用带有AJAX的post传递隐藏值

时间:2012-01-02 00:40:30

标签: php javascript ajax

我只想让注册用户投票。我不想改变我的所有代码。如果用户登录并在隐藏字段中传递,则现在最简单的方法是设置为true。

我如何在这里传递隐藏值?

这是我到目前为止所得到的

$(function() {

$(".vote").click(function() 
{

var name = $(this).attr("name");
var id = $(this).attr("id");

var dataString = 'id='+ id ;
var parent = $(this);


if(name=='up')
{

$(this).fadeIn(200).html('<img src="dot.gif" align="absmiddle">');
$.ajax({
   type: "POST",
   url: "up_vote.php",
   data: dataString,
   cache: false,

   success: function(html)
   {
    parent.html(html);

  }  });

}

return false;
    });

});

  <div class="box1">
    <div class="up"><a href="" class="vote" name="up" id="'.$row['id'].'">'.$row['plus'].'</a></div>
  </div>

up_vote.php

if($_POST['id'])
{

$id=$_POST['id'];
.
.
. 
}

3 个答案:

答案 0 :(得分:8)

错误的做法。 Javascript在客户端执行。您永远不会信任客户端,因为客户端由用户控制。使用存储在服务器端的会话。

(什么会阻止用户复制+粘贴页面代码,修改它并执行它?)

答案 1 :(得分:3)

添加隐藏的输入:

<input type="hidden" id="loggedIn" value="whatever" />

设置变量

var id = $(this).attr("id");
var loggedIn = $("#loggedIn").val(); //will be the value of loggedIn

在$ .ajax()

中更改此行
data: {loggedIn: loggedIn, id: id}

答案 2 :(得分:0)

只需将隐藏字段附加到dataString

即可
dataString += 'foo=bar'