0

次のコードを使用して、php 経由でデータベースからデータをロードしています。

<div>

<?php 
    echo "The subjects that you can tutor are:<br>";
    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 "<div class='torem'>".$m['level'] ." ". $m['subject']." ".$tutor_top[$i].
                   "<div style='float:right; padding-right:5px;'>
                      <a href='#'>
                          <img src='images/remove_btn.png' onclick='removeSubj(".$log_id.",".$tutor_lvl[$i].",".$tutor_subj[$i].",\"".$tutor_top[$i]."\")'>
                      </a>
                    </div>
                  </div></br>";
        }
    }

removeSubj 関数を使用して、このエントリをページから削除したいのですが、ページを更新しません。現時点では、ajax 呼び出しによってデータベースからエントリが削除されますが、ページの変更を確認するには、ページをリロードする必要があります。ページを更新せずにエントリをフェードアウトさせる方法はありますか?

これがremoveSubj関数です-これを達成する方法を誰かが提案できますか?

function removeSubj(id, level, subject, topic){

   var con = confirm("Are you sure you would like to remove this subject?");
    if(con == true){
        $.ajax({
           type: 'POST',
           url: 'php_parsers/removeSubjects.php',
           data: {
              "id": id, 
              "level": level, 
              "subject": subject,
              "topic": topic
             },
           success:function(data, response, xhr){

             if (response == "success"){
                 /*    window.location.reload(); */
             }
           },
           error:function(){
              // failed request; give feedback to user
              $('#ajax-panel').html('<p class="error"><strong>Oops!</strong> Try that again in a few moments.</p>');
           }
       });
    }else {
       donothing();
    }
}
4

2 に答える 2

0

非表示にする div には一意の識別子が必要です。id を div に追加するとうまくいくはずです:

while ($m = mysqli_fetch_array($result_t)) {
    echo "<div class='torem' id='{$m['my_unique_id']}'>" . $m['level'] . " " . $m['subject'] . " " . $tutor_top[$i] .
        "<div style='float:right; padding-right:5px;'>
            <a href='#'>
                <img src='images/remove_btn.png' onclick='removeSubj(" . $log_id . "," . $tutor_lvl[$i] . "," . $tutor_subj[$i] . ",\"" . $tutor_top[$i] . "\")'>
    </a>
</div>
</div></br>";

次に、成功時に div を非表示または削除できます。

success: function (data, response, xhr) {
    if (response == "success") {
        $('#my_unique_id').hide();
        $('#my_unique_id').remove();
    }
}
于 2013-08-16T22:20:03.623 に答える