I want to delete a record from database on click and this is what I have tried:
delete.js
function oki(){
mysql_query("DELETE FROM topics WHERE id='58'");
}
Button:
<script type="text/javascript" src="delete.js"></script>
<?php
include_once("connect.php");
?>
<button onClick="oki();">Del</button>
Please help me I cant find out how to do this. Just tell me if you need any more information.
I want to delete a record from database on click and this is what I have tried:
delete.js
function oki(){
mysql_query("DELETE FROM topics WHERE id='58'");
}
Button:
<script type="text/javascript" src="delete.js"></script>
<?php
include_once("connect.php");
?>
<button onClick="oki();">Del</button>
Please help me I cant find out how to do this. Just tell me if you need any more information.
Share Improve this question edited Aug 31, 2013 at 10:38 Radim Köhler 124k48 gold badges242 silver badges340 bronze badges asked Aug 31, 2013 at 9:29 user2733334user2733334 4- 3 php and javascript do not work that way together – SubjectCurio Commented Aug 31, 2013 at 9:31
-
1
I would remend you to use
ajax()
– user123_456 Commented Aug 31, 2013 at 9:33 -
Wele to Stack Overflow! You should use
MySQLi
orPDO
instead ofmysql_*
functions, which are deprecated and will be removed in the future versions of PHP. More information avalible here. – Petr R. Commented Aug 31, 2013 at 9:59 - possible duplicate of Reference: Why does the PHP (or other server side) code in my Javascript not work? – Petr R. Commented Aug 31, 2013 at 10:00
6 Answers
Reset to default 1If you just want to delete from a link, don't care about page reload etc... then it's already answered here:
php delete mysql row from link
But it sounds like you want to click a button, and it'll delete the row without navigating you away from the page you're on, in which case you'll want to look into using some form of ajax.
You've not provided enough of your code so can't help you with updating the display after you've performed your action, but the basis would probably look something like this (untested)
delete.php
<?php
include_once("connect.php");
if ($_GET['mode'] == 'delete') {
$row_id = (int)$_POST['row_id'];
mysql_query("DELETE FROM topics WHERE id=" . $row_id);
}
?>
<script type="text/javascript" src="http://ajax.googleapis./ajax/libs/jquery/1.9.1 /jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.delete-row').click(function() {
$.post('delete.php?mode=delete', { row_id: $(this).data('row_id')}).done(function(data) {
// Reload your table/data display
});
});
});
</script>
<button class="delete-row" data-row_id="58">Delete</button>
I would HEAVILY advise against using mysql_ functions, use PDO or MySQLi instead. Go back to basics and learn how PHP and javascript can interact with each other, as there's something not right there in your knowledge.
Edit (additional OCD):
You should also be considering other things, can anyone delete any row? If only certain people should have permission, you should verify that the currently logged in user should be allowed to delete that particular row prior to deleting it.
<input type="button" onclick="deleteme(<?php echo $row['id']; ?>)"> // fetch from database
<script language="javascript">
function deleteme(delid)
{
window.location.href='delete.php?del_id='+delid+'';
return true;
}
</script>
delete.php
$select="delete from tbl_category where id='".$_GET['del_id']."'";
$query=mysql_query($select) or die($select);
Sorry for my bad english First of all create file with php extensions and function you create its php's function not javascript, so code this one.
<a href="delete.php?id=58">Delete</a>
Create delete.php file and code this one
if(isset($_GET['id'])) {
@mysql_query("DELETE FROM topics WHERE id = '".$_GET['id']."'");
header("location: index.php");
exit();
}
PHP
$ids = array_map('intval', json_decode($_GET['id']));
mysql_query("DELETE FROM topics WHERE id in (" . implode(',', $ids) . ")");
and in javascript (using jQuery)
function oki() {
var checked = $('.row:checked');
var ids = checked.map(function() { return $(this).val(); });
$.get('delete.php', {id: JSON.stringify(ids)}, function(response) {
checked.remove();
});
}
and your html would be
Row with id 10: <input type="checkbox" class="row" value="10"/>
Row with id 20: <input type="checkbox" class="row" value="20"/>
Row with id 30: <input type="checkbox" class="row" value="30"/>
Row with id 40: <input type="checkbox" class="row" value="40"/>
<button onClick="oki();">Del</button>
This is what I did to delete data without leaving page or reload page:
In some.php:
<?php
include"../connect.php";
// for simple security need change to improve
Session_start();
$n=rand(1,99);
$uid=md5($n);
$_SESSION['uid']=$uid
// end
?>
<script>
function getXMLHTTP() { //fuction to return the xml http object
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
function getData(strURL) {
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('divResult').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
</script>
<input name="button" type="button" value="Clear Data" onClick="getData('deldata.php?id=58&uid=<?=$uid?>')">
<div id="divResult"></div>
In deldata.php:
<?php
Session_start();
include"../connect.php";
$idd=$_REQUEST['id'];
$uid=$_REQUEST['uid'];
$sc=$_SESSION['uid'];
//check for simple security
if($sc==$uid){
mysqli_query("DELETE FROM topics WHERE id='$idd'");
echo "Data deleted":
}
?>
You can also use this for dynamic row for multiple "Delete" button.
Here is my solution:
<?php
$query="select * from product limit ".$offset. " , " .$perpage;
$result=mysql_query($query);
?>
<center>
<table border="2">
<tr>
<th>Category Name</th>
<th>Product Name</th>
<th>Product Description</th>
<th>Product Image</th>
<th>Product Actual image</th>
<th>Product Discount</th>
<th>Product Selling Price</th>
<th>Update/Delete</th>
</tr>
<?php while ($row=mysql_fetch_array($result)){?>
<tr>
<td><?php echo $row['pro_catagory'];?></td>
<td><?php echo $row['pro_name'];?></td>
<td><?php echo $row['pro_des'];?></td>
<td><img src="Img/<?php echo $row['pro_image'];?>" width="100" height="100" ></td>
<td><?php echo $row['pro_actual'];?></td>
<td><?php echo $row['pro_dis'];?></td>
<td><?php echo $row['pro_price'];?></td>
<td<a href="delete.php?pid=<?php echo $row['pro_id'];?>">Delete</a></td>
?>
In delete.php
<?php
$con=mysql_connect('localhost','root','');
if(!$con)
{
die('could not connect' .mysql_error());
}
mysql_select_db("jaswinder", $con);
$Query="delete from product where pro_id=".$_REQUEST['pid'];
$result=mysql_query($Query);
?>