>

현재 페이지를 새로 고치지 않고 댓글을 삭제할 수 있도록 만들려고 노력하고 있지만 AJAX를 처음 사용하기 때문에 몇 가지 문제가 있습니다. 내가 직면하고있는 문제 중 하나는 지금까지 나는 load() 만 사용했다는 것입니다.  함수는 파일 내부에서 단일 함수가 아닌 전체 PHP 파일을 호출합니다.

두 번째 문제는 보통 새로운 물건을 넣을 때 특별히 만들어진 div 안에 넣는다는 것입니다 하지만로드 대신 삭제하려고하므로 어떻게해야할지 모르겠습니다.

이것은 내 PHP 코드입니다.

index.php

echo "<form method='POST' action='".deleteComments($conn)."'>
                <input type='hidden' name='id' value='".$row['id']."'>
                <button id='delComments' type='submit' name='commentDelete'>Delete</button>
      </form>";

commentFunctions.php

function deleteComments($conn) {
    if(isset($_POST['commentDelete'])) {
        $id = $_POST['id'];
        $sql4 = "DELETE FROM comments WHERE id='$id'";
        $result4 = mysqli_query($conn, $sql4);
        header("Location: index.php");
    }
}

  • 답변 # 1

    이 코드가 효과가 있기를 바랍니다.

    <button id='delComments' data-delete-id = '".$row['id']."'  type='submit' name='commentDelete'>Delete</button>
    
    

    이와 같이 jquery를 사용하십시오

    var delete_id = $(this).attr("data-delete-id");
    $.ajax({
      type: "POST",
      url: "your_url",
      data: ({id: delete_id}),
      cache: false,
      success: function(data){
        alert(data);
      }
    });
    
    

    댓글 Function.php

    function deleteComments($conn) {
        $delete_id = $_POST['id']; 
        if(isset($delete_id)) {
            $sql4 = "DELETE FROM comments WHERE id='$id'";
            $result4 = mysqli_query($conn, $sql4);
            echo 'delete comment';
        }
    }
    
    

  • 답변 # 2

    이 자바 스크립트를 정의한 다음 다른 종류의 이벤트에서 자바 스크립트를 호출하여 애플리케이션에서 AJAX를 수행 할 수 있습니다. onClick (), onSelectedIndexChanged () 등

    <script type="text/javascript">
    
    var HttpObject,vurl;
    function genHttpobject() {
        if(window.XMLHttpRequest) {
            HttpObject=new XMLHttpRequest();
        } else if(window.ActiveXObject) {    
            HttpObject=new ActiveXObject("Microsoft.XMLHTTP");    
        } else {
            alert("Your Browser Does not support AJAX..Please use diff Browser");
        }
    }
    function CallingMethod(val1,display_id) {
        genHttpobject();
        if(HttpObject!=null) {    
            HttpObject.open("GET",val1,true);    
            HttpObject.send(null);    
            HttpObject.onreadystatechange=function() {    
                if(HttpObject.readyState==4) {
                     document.getElementById(display_id).innerHTML=HttpObject.responseText
                }
            }
        }
    }
    
    

관련 자료

  • 이전 c# - MVC ViewModel이 다시 게시되지 않음
  • 다음 serial port - 파이썬 장치 (변위 ​​측정)에서 RS232를 통해 데이터를 읽고