Jump to content

Recommended Posts

Hi Guys

 

I know nothing about javaScript, but im trying to ammend somebody else's script to work with mine, but its not working an i think it may be down to the JavaScript.

 

Would somebody mind taking a loook and see if they can spot an error?

 

Basicaly, it is a rating system with 3 files. The first file (gamecard.php) contains a link to the other two files...Either 'Up.php' or 'Down.php'. When a user clicks on one of the links, the number will should increase by one. However, at the minute, the number disapears and doesnt refresh or store in the db

 

The 3 peices of code are:

 

Gamecard.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Voting with jQuery, Ajax and PHP</title>
<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">
$(function() {

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

var id = $(this).attr("id");
var name = $(this).attr("name");
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);
  
  }  });
  
}
else
{

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

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


}
  
  
   


return false;
});

});
</script>
</head>
<?php

//get results from db

if (isset($_GET['gameid']) && is_numeric($_GET['gameid'])) {
$gameid = mysql_real_escape_string($_GET['gameid']);
$sql = "SELECT * FROM Games WHERE gameid = $gameid";
$res = mysql_query($sql);
$data = mysql_fetch_assoc($res);

// However you'd like to format the html to output
$title=$data['gametitle'];
$cover=$data['cover'];
$gameid=$data['gameid'];
$info=$data['info'];
$genre=$data['genre'];
$rdate=$data['releasedate'];
$format=$data['format'];
$dir1="coverart";
$reviews="Enter Reviews Here";
date("d/m/y",$rdate);

echo "<div id='cardcontainer_full'>
<div id='coverart'><img src='$dir1/{$cover}' width='100' height='140'><br></div>

<div id='gametitle'>$title</div>

<div id='features'>Genre: $genre<br><br>
Release Date: $rdate<br><br>
Available for: $format<br><br>
</div>

<div id='gameinfo'><div style='font-weight:bold'>Summary</div><br>$info
<p><div style='font-weight:bold'>Reviews</div><p>$reviews
</div>

</div>";

} else {

$data = '';

if(isset($_GET['filter']) && $_GET['filter'] != ''){
$filter = $_GET['filter']."%";
}else{
// set A as default
$filter = "a%";
}

$sql = "SELECT * FROM Games WHERE gametitle LIKE '$filter' ORDER BY gametitle";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) == 0) die("No records found");

// loop through the results returned by your query
while($data = mysql_fetch_assoc($res))
{
    $title=$data['gametitle'];
$cover=$data['cover'];
$gameid=$data['gameid'];
$up=$data['up'];
$down=$data['down'];

// directory for images
$dir="coverart";
?>



<div id="cardcontainer">

<div id="coverart">
<?php echo "<img src='$dir/{$cover}' width='100' height='140'><br>"; ?>
</div>
<div id="gametitle">
<a href="Reviews.php?gameid=<?php echo $gameid ?>"><?php echo $title ?></a>
</div>
<div id="up"><a href="" class="vote" id="<?php echo $gameid; ?>" name="up"><?php echo $up; ?></a></div>
<div id="down"><a href="" class="vote" id="<?php echo $gameid; ?>" name="down"><?php echo $down; ?></a></div>

</div>
<br />
<?php
}
}
?>

 

up.php

<?php
include("config.php");

$ip=$_SERVER['REMOTE_ADDR']; 

if($_POST['id'])
{
$id=$_POST['id'];
$id = mysql_escape_String($id);

$ip_sql=mysql_query("select ip_add from Voting_IP where mes_id_fk='$id' and ip_add='$ip'");
$count=mysql_num_rows($ip_sql);

if($count==0)
{
$sql = "update Games set up=up+1  where gameid='$id'";
mysql_query( $sql);

$sql_in = "insert into Games (mes_id_fk,ip_add) values ('$id','$ip')";
mysql_query( $sql_in);



}
else
{
}

$result=mysql_query("select up from Games where gameid='$id'");
$row=mysql_fetch_array($result);
$up_value=$row['up'];
echo $up_value;
}
?>

 

down.php

<?php
include("config.php");

$ip=$_SERVER['REMOTE_ADDR']; 

if($_POST['id'])
{
$id=$_POST['id'];
$id = mysql_escape_String($id);

$ip_sql=mysql_query("select ip_add from Voting_IP where mes_id_fk='$id' and ip_add='$ip'");
$count=mysql_num_rows($ip_sql);

if($count==0)
{
$sql = "update Games set down=down+1  where gameid='$id'";
mysql_query( $sql);

$sql_in = "insert into Voting_IP (mes_id_fk,ip_add) values ('$id','$ip')";
mysql_query( $sql_in);



}
else
{

}

$result=mysql_query("select down from Games where gameid='$id'");
$row=mysql_fetch_array($result);
$down_value=$row['down'];
echo $down_value;

}
?>

 

The error may very well be in the php but im not so sure. Your help will be appreciated

Link to comment
https://forums.phpfreaks.com/topic/247342-is-the-fault-with-the-jquery/
Share on other sites

UPDATE: I have found that this works when i try to use it through the absolute path (www..../..../gamecards.php)

 

It is not working when i try to use it through www....../reviews.php which gamecards.php is an include of.

 

Does anybody have any idea why?

 

Thanks

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.