2013-06-16 2 views
0
에서 while 루프의 쏟아져 요소 '삭제'버튼을 필요

나는 데이터베이스에서 목록을 만듭니다 다음 루프를 한 :가 대상 PHP

for ($i=0;$i<count($tutor_subj);$i++){ 
$query_tutors = "SELECT level, subject FROM level, subject WHERE level.id = '$tutor_lvl[$i]' AND subject.id = '$tutor_subj[$i]'";  
$result_t = mysqli_query($db_conx, $query_tutors); 
    while($m = mysqli_fetch_array($result_t)){ 
    echo $m['level']." ".$m['subject']." ".$tutor_top[$i]."<div style='float:right; padding-right:5px;'><a href='#'><img src='images/remove_btn.png' onclick='removeSubj'></a></div></br>"; 
     } 
    } 
?> 

내가 추가 해요 볼 수있는 바와 같이, 각 항목을 입력 한 후 html의 '제거'버튼을 클릭하고 사용자가 데이터베이스의 특정 행을 삭제할 수있게하려면이 버튼을 사용하고 싶습니다.

내 질문에 어떻게하면 각 루프의 끝에 생성되는 단추에 루프 동안 (이 때문에 해당 항목이 DB에서 삭제됨)이 링크 할 수 있습니까?

추신 - 내가 따라서

+0

AJAX를 사용하여 클라이언트 측에서 서버 측으로 데이터를 보내고 PHP 스크립트가 테이블에서 삭제하도록해야합니다. – Achrome

+0

하나의 쉬운 방법은 각 버튼의 링크를 PHP 파일로 리디렉션하는 것입니다. ''와 같은 것입니다. 그런 다음 delete.php에서 DB 함수를 호출하여 삭제합니다. – Akatosh

+0

@ashwinMukhija 괜찮습니다.하지만 서버에서 삭제할 데이터를 어떻게 알 수 있습니까? 즉 각 버튼이 출력의 각 행을 어떻게 지정합니까? – Mobaz

답변

1

onclick='removeSubj'에 고유 식별자를 추가 것을 제외하고, 붙어 있기 때문에 나는 호출 될 때, 당신은 당신이하고자 결정할 수 아직 자바 스크립트/JQuery와 기능 removeSubj를 작성 havent 한 삭제하고 싶습니다. onclick='removeSubj("unique_identifier")'과 같은 것을 사용할 수 있습니다. unique_identifier를 데이터베이스의 모든 행 (예 : id-field)에 대해 항상 고유 한 것으로 대체하십시오.

그런 다음이 값을 자바 스크립트 함수에서 사용하고 마지막으로 서버 측 스크립트에서 사용하여 올바른 행을 삭제할 수 있습니다.

0

나는 그의 대답을 읽기 전에 같은 문제가 있었으므로 버트 석 @ sumurai8s '의 요점에 당신과 예를 들어 보겠습니다.

  1. 가정이 당신이 루프하려는 항목이

    <div class="media-body media-right"> 
    <span onclick="delete(<?php echo $fromDb['id']; ?>);" class="icon icon-trash-o icon-3x text-blood pull-lg-right"></span> 
    </div> 
    
  2. 이 당신의 자바 스크립트가 있어야합니다 것입니다 (즉, 당신은 동적으로 PHP/데이터베이스 루프에서이 생성 한)

    //delete 
    function delete(I) { 
        // delete methodology 
          var id_to_be_deleted = I; 
          var formData = new FormData(); 
          formData.append("id_to_be_deleted", id_to_be_deleted); 
          $.ajax({ 
           type: "POST", 
           url: "/delete.php", 
           contentType: false, 
           processData: false, 
           //contentType: "application/json; charset=utf-8", 
           dataType: "json", 
           data : formData, 
           success: function() 
           { 
           alert('successs'); 
           } 
           }); 
           } 
    
  3. delete.php

    이어야합니다.
    <?php 
    if ($_POST['id_to_be_deleted']) { 
    $delete = $_POST['id_to_be_deleted']; 
    //do db delete query here i.e DELETE FROM table_name WHERE id='$id_to_be_deleted' 
    ... 
    } 
    
  4. 이렇게하지 않으면 DELETE ACTION이 두 번 실행 중일 수 있습니다.

    해피 코딩)

내 파자마에서 나를 깨어위한 sumurai8 @ 감사, 나 한테 감사하지 마십시오.