souci pour recuperer une variable dans un script de vote

Petit nouveau ! | 3 Messages

12 oct. 2011, 00:09

bonsoir,
j'ai trouvé un script de vote assez court que j'essaie d'implanter dans mes pages.
dans cette page de news, j'appelle via mysql un ensembles de données dont l'id de la news.
mon souci est que je n'arrive pas à renvoyer cet id lors de la validation du vote pour enregistrer le vote dans la bdd.
mon select dont id from ma table

<div id=social">
<? 
$vote_id = $reponse['id'];
include("./includes/news/vote/vote.php"); ?>
</div>
fichier vote.php
<html>
<head>
<script type="text/javascript">
function getVote(int)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("poll").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","./includes/news/vote/vote2.php?vote="+int,true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="poll">
<h3>Aimez vous cet article ?</h3>
<form>
<input type="hidden" name="vote_id" value="<? echo $vote_id ; ?>" />
Yes:
<input type="radio" name="vote" value="0" onclick="getVote(this.value)" />
<br />No:
<input type="radio" name="vote" value="1" onclick="getVote(this.value)" />
</form>
</div>

</body>
</html> 
fichier pour la requête:
<?php
$vote = $_REQUEST['vote'];

//get content of textfile
$filename = "poll_result.txt";
$content = file($filename);

//put content in array
$array = explode("||", $content[0]);
$yes = $array[0];
$no = $array[1];

// connect to db


include("../xxxxxxx"); 
mysql_connect($host, $user, $pass); 
mysql_select_db("$bdd") 
or die("Ouverture base impossible");


if ($vote == 0)
  {
  $yes = $yes + 1;
  mysql_query("UPDATE news SET votey=votey+1 WHERE id = '$vote_id' "); 
  }
if ($vote == 1)
  {
  $no = $no + 1;
    mysql_query("UPDATE news SET voten=voten+1 WHERE id = '$vote_id' "); 

  }

<h2>Result:</h2>
<p>
Merci d'avoir voté : 

</p>
<table>
<tr>
</tr> <tr>
<td>Yes:</td>
<td>
<img src="./includes/news/vote/poll.gif"
width='<?php echo(100*round($yes/($no+$yes),2)); ?>'
height='20'>
<?php echo(100*round($yes/($no+$yes),2)); ?>%
</td>
</tr>
<tr>
<td>No:</td>
<td>
<img src="./includes/news/vote/poll.gif"
width='<?php echo(100*round($no/($no+$yes),2)); ?>'
height='20'>
<?php echo(100*round($no/($no+$yes),2)); ?>%
</td>
</tr>
</table>
j'ai essayé en post et get mais je n'arrive jamais à récupérer ma variable $vote_id.

pourriez vous m'aider?

Merci à toutes et tous

ViPHP
AB
ViPHP | 5818 Messages

12 oct. 2011, 00:49

Il te suffit de mettre un id dans ton input puis de récupérer sa valeur :
<?php
$vote_id = 12;
?>
<html>
<head>
<script type="text/javascript">

function getVote(int)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("poll").innerHTML=xmlhttp.responseText;
    }
  }
  
  alert(document.getElementById("vote_id").value);

xmlhttp.open("GET","./includes/news/vote/vote2.php?vote="+int,true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="poll">
<h3>Aimez vous cet article ?</h3>
<form>
<input type="hidden" name="vote_id" id = "vote_id"  value="<?php echo $vote_id ; ?>" />
Yes:
<input type="radio" name="vote" value="0" onclick="getVote(this.value)" />
<br />No:
<input type="radio" name="vote" value="1" onclick="getVote(this.value)" />
</form>
</div>

</body>
</html>
A tester dans une page séparée. Et donc tu pourras compléter la chaine de ta requête :
xmlhttp.open("GET","./includes/news/vote/vote2.php?vote="+int+"&vote_id="+document.getElementById('vote_id').value, true);

Petit nouveau ! | 3 Messages

17 oct. 2011, 05:56

hello!
désolé pour le long temps de reponse.

Quand je fais otn test il me met une erreur d'objet requis sur la ligne de l' " alert"

merci