2012-01-02 2 views
1

Я хочу только зарегистрированные пользователи, чтобы голосовать. Я не хочу менять все свои коды. Самый простой способ сделать для меня сейчас - установить значение true, если пользователь выполнил вход и передал это в скрытом поле.как передать скрытое значение, используя сообщение с AJAX

Как я могу передать здесь скрытое значение?

Это то, что я получил до сих пор

$(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']; 
. 
. 
. 
} 
+1

Почему нет PHP сделать проверку и запретить голосование, не повторяющий голос , если пользователь не вошел в систему? – stedotmartin

+0

Мне нужно изменить слишком много кодов. Я не могу просто отключить голосование. – emre

+0

О, радости спагетти-кода [PHP] :-) –

ответ

2

Добавить скрытый вход :

<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} 
+1

Я согласен с bdares в том, что это неправильный подход, но он будет работать. – Paul

8

Неправильный подход. Javascript выполняется на стороне клиента. Вы никогда не доверяете клиенту, поскольку клиент контролируется пользователем. Используйте сеанс, который хранится на стороне сервера.

(Что будет держать пользователя от копирования + вставить код страницы, изменить его, и выполнение его?)

+0

Или используйте firebug или какой-нибудь другой отладчик javascript и измените значение скрытого поля перед его отправкой. –

0

просто путем добавления скрытого поля в dataString

dataString += 'foo=bar' 
Смежные вопросы