2010-04-30 32 views
1

我使用jQuery.get()從頁面中刪除表中的行main.php。現在我想刪除一行之後,顯示成功的消息,那成功的消息應該在會話變量($_session['suxesMsg']如何使用jquery.get()方法在會話變量中返回成功消息

  1. 如何在一個會話變量設置成功的消息,並顯示在特定的範圍?

  • 有jQuery中的任何其它方法,一個消息顯示爲只有5-10 秒,然後消失?
  • 這裏是我的代碼

    main.php


    <?php if($_SESSION['suxesMsg']!='') { ?> 
        <span class="msg"> 
        <?php echo $_SESSION['suxesMsg'];unset($_SESSION['suxesMsg']); } ?> 
        </span> 
    
        <table border="0" cellpadding="5" cellspacing="0" id="promotionTable"> 
        <tr> 
         <td align="left"><img border='0' src='images/just.gif'/>First Promotion</td> 
         <td align="center" >View Detail</td> 
         <td align="center" id="deleteMe"> 
         <img src='images/delete.png' alt='Delete' width='14' height='14'id="45"/> 
         </td>     
        </tr> 
        <tr> 
         <td align="left"><img border='0' src='images/just.gif'/>First Promotion</td> 
         <td align="center" >View Detail</td> 
         <td align="center" id="deleteMe"> 
         <img src='images/delete.png' alt='Delete' width='14' height='14' id="48"/> 
         </td>     
        </tr> 
        </table> 
    
    
    
    <script type="text/javascript">   
        jQuery(document).ready(function(){  
         jQuery('#deleteMe img').click(function() { 
          if(!confirm('Want to delete!')) return; 
         jQuery.get('deleteThis.php', {oid:this.id}); 
         jQuery(this).parent().parent().fadeTo(400, 0, function() { 
          jQuery(this).remove(); 
         }); 
        }); 
        </script> 
    

    deleteThis.php


    if(isset($_GET[oid])) 
        { 
         $offerID=$_GET[oid];  
         $delsql="DELETE FROM some_table WHERE promotion_id=".$offerID; 
         $db->query($delsql);   
         $_SESSION['suxesMsg'] = "Promotion deleted sucessfully."; 
        } 
    

    感謝您的幫助alwayz

    +0

    作爲,看到http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol:「請注意,GET不應該用於引起副作用的操作,例如用於在Web應用程序中執行操作,其中一個原因是GET可以被機器人或爬蟲程序任意使用,而不需要考慮請求應該引起的副作用「。 – 2010-04-30 12:58:34

    +0

    感謝您的建議,但我需要解決方案先生 – diEcho 2010-04-30 13:19:24

    +0

    @我喜歡PHP:對不起,我的評論的解決方案是使用POST進行操作,導致副作用。 – 2010-04-30 13:27:16

    回答

    3

    我不確定爲什麼需要進入會議。看看你的代碼,這意味着你需要在顯示實際的錯誤消息之前刷新頁面,因爲當頁面最初生成時,它是用PHP完成的。

    您是否可以不直接在刪除該項目的請求中返回成功消息,然後使用JavaScript立即顯示它?您可以使用JSON來編碼成功標誌和發回的字符串消息。例如這樣的事情:

    //make post request to delete item 
    $.post'deleteThis.php', {oid:this.id}, function(data) { 
        if (data.success) { 
         $('.msg').html('Success: ' + data.msg); 
        } else { 
         $('.msg').html('Failed: ' + data.msg); 
        } 
    }, "json"); 
    

    deleteThis.php

    $success = false; 
    $msg = ''; 
    if(isset($_POST['oid'])) { 
        //delete $_POST['oid'] here   
        $success = true; //if successfull 
        $msg = 'Deleted ok'; 
    } else { 
        $msg = 'No ID sent'; 
    } 
    
    //send json data back 
    echo json_encode(array('msg'=>$msg, 'success' => $success)); 
    
    一邊
    +0

    要獲得get()的結果,請傳遞成功處理程序。在這裏你可以更新你的跨度。 – ZeissS 2010-04-30 13:16:13

    +0

    @Tom是你對,我需要在顯示實際的錯誤信息之前刷新頁面,以避免我想要的解決方案先生 – diEcho 2010-04-30 13:21:46

    +0

    @我喜歡PHP:更新我的回答 – 2010-04-30 13:34:34

    相關問題