Reputation: 93
<?php
$imgcheck=mysql_query("
SELECT *
FROM `images`
WHERE `deal_id` =$_SESSION[eid]
LIMIT 0 , 30
");
$numimgcheck=mysql_num_rows($imgcheck);
if($numimgcheck==0){echo '<span style=color:#ff0000; >No pictures uploaded</span>';}
while ($rowimg2= mysql_fetch_array($imgcheck)){
$imgname=$rowimg2['name'];
{
// $rowimg2 = mysql_fetch_array($imgcheck) or die(mysql_error());
//echo $imgname;
echo ' <a href="users/'.$_SESSION['userid'].'/images/'.$imgname.'" rel="lightbox[slide]" caption=".">';
}
{ echo '<img src="users/'.$_SESSION['userid'].'/images/thumbs/'.$imgname.'" border="0" />';}
{ echo '</a><a href="delimg.php?id='.$imgname.'"><img src="images/del.jpg" width="22" height="22" onclick="deleteImg(this);" /> </a>
';
}
//<input type="checkbox" name="'.$imgname.'" id="'.$imgname.'" > if($numimgcheck==0){ $havepic=' <td width="50px" align="center"><div class="iddivimg"> <img src="users/default/nopic_small.jpg" />
// ';}
}
?>
There is a page in my website where users can edit and delete images. In this page, there is a delete button (itself a 20x20 image) near every image. When the user clicks on that button, its corresponding image will be deleted. I want it to be in such a way that when I click the delete image a confirm box should appear, asking "Are you sure you want to delete this image?" If I click yes, I want to delete the MySQL table's data and image. If I click no, nothing should happen. How can I do this?
Upvotes: 0
Views: 5472
Reputation: 6645
In the code that you had recently added to your question, I think the issue is that the <a href>
is always executed because it runs independent of your call to the function deleteImg().
<a href="delimg.php?id='.$imgname.'">
<img src="images/del.jpg" width="22" height="22" onclick="deleteImg(this);" />
</a>
I think if you change your code to this, it should work:
<a href="delimg.php?id='.$imgname.'" onclick="deleteImg(this);">
<img src="images/del.jpg" width="22" height="22" />
</a>
And in your deleteImg() function, add return TRUE;
in the IF part of your confirm() and add return FALSE
in the ELSE part. Something like this:
if (confirm("Do you want to delete the image?")) {
// call your PHP script that will then delete the image
return TRUE;
} else {
return FALSE;
}
Upvotes: 1
Reputation: 6645
It seems you haven't tried searching the net for solution because I'm sure you will find some if not many. When clicked on the image, call a javascript function that prompts the user with a question, using the JS confirm() function, like
if (confirm("Do you want to delete the image?")) {
// call your PHP script that will then delete the image
}
Upvotes: 1
Reputation: 1108782
Put each image in its own form with the image identifier as hidden value and use the delete image as CSS background image of the submit button. Finally use JS confirm()
function for the confirmation.
<form action="delete.php" method="post">
<img src="image1.png" />
<input type="hidden" name="id" value="1" />
<input type="submit" class="delete" value="" onclick="return confirm('Sure?')" />
</form>
<form action="delete.php" method="post">
<img src="image2.png" />
<input type="hidden" name="id" value="2" />
<input type="submit" class="delete" value="" onclick="return confirm('Sure?')" />
</form>
...
with CSS
.delete {
background-image: url('delete.png');
width: 20px;
height: 20px;
border: 0;
cursor: pointer;
}
This is easily done in a loop. You could use jQuery to unobtrusively introduce ajaxical powers, whenever necessary.
Upvotes: 2
Reputation: 56769
What server-side language is being used? Assuming PHP for the purposes of this explanation.
Rough sketch (AJAX method):
delete_image.php?image_id={id}
)confirm
to validate user wants to continue.Form POST method:
confirm
, and only continue on true result.delete_image.php
, retrieve image_id from post formDELETE
query.Upvotes: 1
Reputation: 9154
Well there is no single solution to this so I'll provide some technologies that will be useful for you (I assume from the tag that you are using Java environment on server).
As for the confirm box, In case you mean something like DHTML confirm boxes that are commonly seen on Facebook, you might want to use jQuery UI component. Have a look at this : http://jqueryui.com/demos/dialog/#modal-confirmation
You can also use javascript confirm function, but these boxes are currently in vogue.
As far as updating the database is considered, of course that has to be done from server side. You can set a Servlet to do the deletion or a web service for the same. It just is a matter of passing right parameters.
Upvotes: 0
Reputation: 22319
Its hard to help without some sample code. assuming you have a function deleteImg()
and an image <img src="delete.jpg" onclick="deleteImg(this);" />
then you do:
function deleteImg(image)
{
if(confirm("are you sure you want to delete this image"))
{
... // delete image logic.
}
}
http://www.javascripter.net/faq/confirm.htm
Upvotes: 1