2013-08-16 142 views
0

我從數據庫通過PHP加載數據用下面的代碼:沒有刪除頁面的DIV刷新

<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(); 
    } 
} 

回答

3

基本上你只需要:

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

乘坐返回的數據,並將其插入到您的div爲html。如果你的服務器端腳本沒有返回的數據顯示,那麼就擁有jQuery的爲你做:

success: function() { 
    $('#ajax-panel').text('Success!'); 
} 
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(); 
    } 
} 
+0

感謝這一點,但它一點兒也不作品 - 難道是因爲我使用PHP來回顯主題,所以即使從數據庫中刪除它們,我也需要刷新頁面以將新變量從服務器端重新加載到php中? – Mobaz

+0

你可以使用jquery從客戶端刪除任何你想要的內容。然而,jquery需要能夠識別你想要刪除的內容。出於好奇,你是否用一個唯一的ID代替了'my_unique_id'到處? – immulatin

+0

你是否指網站上的任何地方?我需要檢查,因爲我使用'級別,主題,主題'ID作爲唯一標識符,因此具有相同數字的人將具有重複的ID – Mobaz