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

3

基本上你只需要:

success: function (data) {
   $('#ajax-panel').html(data);
}

获取返回的数据并将其作为 html 插入到您的 div 中。如果您的服务器端脚本没有返回要显示的数据,那么只需让 jquery 为您执行此操作:

success: function() {
  $('#ajax-panel').text('Success!');
}
于 2013-08-16T21:41:43.280 回答
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 回答