-1

I'm building off of a question I had asked and resolved earlier: front end mysql, deleting a row

Basically, I've got a front end where users can view a DB. Instead of having a delete button next to each row, I'd like to have a checkboxes that can be selected for multiple rows. Then, the user only clicks a single delete button and all the selected rows are removed. I don't know much php and mysql at all, so I'm not sure how to approach the code that I already have.

Currently, the onclick calls a delete function. Can anyone help?

I've got a php file that outputs the html for the mysql data into a long strong, the part I need to change is:

$display_string .= "<td class='blank'><input type=\"button\" VALUE=\"Delete\" onclick='delFunction(" . $row['ID'] . ")' ></td>";

Next my delete function:

function delFunction(ID){
    // confirm delete
    if (!confirm(\"Are you sure you want to delete?\")) return false;

    var ajaxRequest;  // The variable that makes Ajax possible!


    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject(\"Msxml2.XMLHTTP\");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject(\"Microsoft.XMLHTTP\");
            } catch (e){
                // Something went wrong
                alert(\"Your browser broke!\");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            var ajaxDisplay = document.getElementById('ajaxDiv');
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }
    }

    var queryString = \"?ID=\" + ID


    ajaxRequest.open(\"GET\", \"delete_row.php\" + queryString, true);
    ajaxRequest.send(null); 
}
Community
  • 1
  • 1
Constantino
  • 2,243
  • 2
  • 24
  • 41

1 Answers1

0

To my understanding of your problem, I am posting some codes for both front and back ends

Front-End Sample Code

<body>
<form action="delete.php" method="post">
<input type="checkbox" name="del_chk[]">Item1
<input type="checkbox" name="del_chk[]">Item2
<input type="checkbox" name="del_chk[]">Item3
<input type="checkbox" name="del_chk[]">Item4
.
.
<input type="submit">
</form>

................

Your back-end code would now be...

<?php
if(isset($_POST['del_chk'])){
$chkbox=$_POST['del_chk'];
foreach($chkbox as $key=>$value) {

//Now you can get your value and use it in mysql delete statements


//for example
$del_query="DELETE FROM `yourtable` WHERE `pri_key`=$value;";
if(mysql_query($del_query)) {
echo "Successful Deletion of: ".$value;
}
else 
{
echo "Unsuccessful Deletion of: ".$value;
} 

} //end foreach
}
?>

I don't know much of ajax. but you can use ajax to call this page..

cipher
  • 2,414
  • 4
  • 30
  • 54
  • Further, quotes in your ajax are escaped. why? You need not do that! – cipher Jun 20 '12 at 02:05
  • how do the IDs of each checkbox get passed? all that's getting passed for me is the value 'on' using the following code for the checkbox: $display_string .= ""; – Constantino Jun 20 '12 at 12:17
  • i wrote up a solution here to about the same question: http://stackoverflow.com/questions/11119719/passing-checkbox-id-to-another-php-file – Constantino Jun 24 '12 at 04:30