2016-12-26 102 views
2

開始於:我是一個總的新手。這些功能是我寫過的第一個功能。我使用Wordpress(並且網站上使用的最重要的插件叫做BuddyPress)。我基本上希望腳本創建的內容是從我的數據庫中刪除一些內容,然後在按某個鏈接時重新加載頁面一次。而已。我的腳本造成無限循環

我遇到了Internet Explorer問題,我的頁面卡在無限循環中。這個問題在Chrome上完全不會發生。我有一個包含PHP如下:

<li><a id="edit" href="#" onclick="runUpdateForm();">Uppdatera profil</a></li> 

當按下下面的腳本運行的鏈接:

function resetUser() { 
    $user_id=get_current_user_id(); 
    global $wpdb; 
    $wpdb->query("DELETE FROM wp_profile_updates WHERE user_id='".$user_id."'"); 
    die(); // close the connection 
} 

add_action('wp_ajax_resetUser', 'resetUser'); // add action for logged users 
add_action('wp_ajax_nopriv_resetUser', 'resetUser'); // add action for unlogged users 

後:

<!--Javascript runUpdateForm--> 
<script type="text/javascript"> 
function runUpdateForm() { 
    $.post (ajaxurl, { 
     action:'resetUser', 
      user_id:jQuery("#user_id").val() 
      }); 
    window.location.reload(); 
} 
</script> 
<!--End Javascript runUpdateForm--> 

在我的功能 - 文件中找到如下谷歌搜索了一下,我發現了以下一段代碼,我把它放在location.reload()之上:

history.pushState("", document.title, window.location.pathname + window.location.search); 

這使得無限循環消失,但它仍然在Internet Explorer中重新加載一次,與Chrome和我真正想要發生的事情進行比較。

對不起,我英文很差。我是瑞典人:-)

我很感激幫助。我需要有知識的人告訴我他們是否馬上看到任何看起來很瘋狂,應該改變的事情。我的問題可能與我的網站上發生的其他事情有關。

問候。

+0

嗯,似乎沒有什麼可怕的在那裏 –

+0

@Bryant傑克遜的地方:你可以自己給學多才錯誤的評分... –

回答

2

你的代碼確實:啓動ajax,然後重新加載。因爲ajax是異步的,所以它永遠不會發布到服務器,它被重新加載中斷。所以,你需要等待AJAX​​:

<script type="text/javascript"> 
function runUpdateForm() { 
    $.post (ajaxurl, { 
    action:'resetUser', 
    user_id:jQuery("#user_id").val() 
     },function(){ 
     // executed on success 
     window.location.reload(); 
     }); 
} 
</script> 

也,即時知道哪裏ajaxurl定義...

+0

這自己也給了我一個無限循環。我把它與「history.pushState(」「,document.title,window.location.pathname + window.location.search);」 (我把它放在windows.location.reload();)之上。 非常感謝您的解決方案! Ajaxurl在我的頭文件中定義。我應該從那裏刪除它嗎? – solojuve1897

+0

不好那麼它的罰款,我只是錯過了它 –

相關問題