Delete file using a link

后端 未结 5 1231
执笔经年
执笔经年 2021-01-17 01:52

i want to have function like delete file from database by using link instead of button. how can i do that? do i need to use href/unlink or what? Can i do like popup confirma

5条回答
  •  臣服心动
    2021-01-17 02:18

    The elegant way of doing this would be to use both PHP and JavaScript. PHP is a server-side language, and should probably be removed as much as possible from the client side stuff. One great way to do it would be to essentially create yourself an API.

    The API would be a PHP script that deletes a row. It takes a variable in via GET and returns a boolean that says "yes we deleted the row" or "something went wrong." I like to use JSON, which in JavaScript is easier to work with than XML, and jQuery's getJSON function, a package that makes it really easy to get going.

    In the .php file (we call it api.php later), if your results are successful return out success boolean. We use PHP's json_encode on an array, and echo out the result:

    $variable = someFunctonToSanitize($_REQUEST['idToDelete']);
    $query_to_run = "delete query using $variable";
    $result = mysql_query($query_to_run);
    // set headers
    header('Content-type: text/json');
    header('Content-type: application/json');
    // if the query was successful, echo true
    if($result) {
       echo json_encode(array("success"=>"true"));
    } else { // else echo false
       echo json_encode(array("success"=>"false"));
    }
    

    In your JavaScript, here using jQuery (this is discouraged, see comments below):

    $('#deleteLink').click(function(event) {
       // prevent link from actually going anywhere
       event.preventDefault();
       // Fire off API request
       $.getJSON("api.php?idToDelete=whatever", function(data){
         if(data.success) {
         alert("Item was deleted.");
         } else {
            alert("There was an error");
         }
       });
     });
    

    With a .post() request, per @Col. Shrapnel and @josh3736's comments (note: also changed $_GET to $_REQUEST to work with both):

    $.post("api.php", { "idToDelete": "whatever" },
       function(data){
             if(data.success) {
                alert("Item was deleted.");
             } else {
                alert("There was an error");
             }
       }, "json");
    

    In your HTML:

    Delete!
    

提交回复
热议问题