Friday, May 10, 2024
 Popular · Latest · Hot · Upcoming
144
rated 0 times [  151] [ 7]  / answers: 1 / hits: 22117  / 14 Years ago, thu, september 2, 2010, 12:00:00

thanks for looking.
I have a very long list of items, users click on an image (a plus sign) to add the item to their personal list. At the moment when they click the + it loads a add-item.php?itemid=* which processes the below code then redirects them to their own list, I did have it redirecting back to the global list but then it was unclear to the user if the item was added to their list. how would I go about making it all update the database without going anywhere, im thinking javascript but have never written any. Any help would be brilliant!! :)



<?php 
ini_set('display_errors', 'On');
error_reporting(E_ALL);

$bucketlist=MYSQL_QUERY( SELECT * FROM membersbuckets where userid = $userid AND bucketid = $bucketid)
or die(mysql_error());

$bucketlist=mysql_fetch_array( $bucketlist ) ;

if($bucketlist < 1) {

mysql_query(INSERT INTO membersbuckets (memberbucketid, userid, bucketid, complete)
VALUES ('', '$userid', '$bucketid', '0'));
echo Adding item to your bucketlist...;
echo <meta http-equiv='Refresh' content='2; URL=mybucketlist.php'/>;
}
else {
echo This item is already on your list, redirecting you to your list;
echo <meta http-equiv='Refresh' content='2; URL=mybucketlist.php'/>;
}
?>


Thank you in advance! :)


More From » php

 Answers
3

You need AJAX, as everyone has said.



Since you have never written any javascript, here is a guide for you.



Instead of your



<a href=add-item.php?itemid='.$itemId.' > Add Item </a>


Write



<a onclick=addItemToUsersList('.$itemId.') > Add </a>


For AJAX, use jquery as Angelo has suggested. Download it and add the following



<script type=text/javascript src=http://path/to/jquery-latest.min.js></script>
<script type=text/javasript>
function addItemToUsersList(itemId)
{
$.ajax({
'url': 'path/to/add-item.php',
'type': 'GET',
'dataType': 'json',
'data': {itemid: itemId},
'success': function(data)
{
if(data.status)
{
if(data.added)
{
$(span#success+itemId).attr(innerHTML,Item added to your personal list);
}
else
{
$(span#success+itemId).attr(innerHTML,This item is already on your list);
}
}
},
'beforeSend': function()
{
$(span#success+itemId).attr(innerHTML,Adding item to your bucketlist...);
},
'error': function(data)
{
// this is what happens if the request fails.
$(span#success+itemId).attr(innerHTML,An error occureed);
}
});
}
</script>


And then finally, in your path/to/add-item.php file write the code to add the items. The parameter itemId will be available here as $_GET['itemId']. Just return proper status values using json_encode.



if($bucketlist < 1) 
{
mysql_query(INSERT INTO membersbuckets (memberbucketid, userid, bucketid, complete) VALUES ('', '$userid', '$_GET['itemId]', '0'));
return json_encode(array(status => true, added => true));
}
else
{
return json_encode(array(status => true, added => false));
}

[#95725] Monday, August 30, 2010, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
tayaw

Total Points: 749
Total Questions: 88
Total Answers: 86

Location: Djibouti
Member since Sun, Feb 27, 2022
2 Years ago
tayaw questions
;