2013-07-04 101 views
0

我想在我的網站上添加一個按鈕,用戶可以刪除他的帳戶。不幸的是我不知道如何去實現它...... 到目前爲止我的代碼: 的Javascript:PHP:刪除之前的確認框

<script language = "JavaScript" > 

     function delete(id) { 
      if (confirm("Do your really want to delete your account?")) 
      { 
       header("refresh:1;url=intern.php?act=account"); 
      } 
      else 
      { 
      } 
     } 

</script> 

我的.html文件:(有喜歡的HTML標題頭沒有標記......它開始? PHP的..)

<td></form><input type='submit' name='deleteuser' value='Delete Account' onClick='return delete()'/></form></td> 

另外我有一個if從句中的.html文件:

if(isset($_POST['deleteuser'])) { 

    if(delete() == true){ 
    delete_user; 
    } 
    else{ 
    header("refresh:1;url=intern.php?act=account"); 
    } 

} 

的按鈕是存在的,當我點擊它,它問我,如果我敢肯定到刪除我的賬戶, 但事後我得到一個錯誤:「致命錯誤:調用未定義的函數刪除()」

我有一個名爲:sp_deleteAccount存儲過程。在我的config.php我宣佈它爲:

$SQL_delete_user = "CALL sp_deleteAccount('"; 

現在我不知道如何處理存儲過程綁定的代碼,以便該帳戶將壓制後刪除「是的,我要刪除我的帳戶」 。

希望我沒有錯過任何東西,有人可以幫我 JOP

+0

'header(「refresh:1; url = intern.php?act = account」);' - 這是什麼? – zerkms

+0

如果你回答沒有,它應該返回到我的帳戶頁面。 – JOP

+0

不行,我剛剛問過這是什麼。我不知道'header()'javascript函數 – zerkms

回答

0

我不知道可能有辦法使用你想的辦法來實現它,但我沒有意識到這一點。爲此,我通常會在jquery-ui Dialog中的OK按鈕的單擊事件中使用ajax調用URL。然後處理邏輯併成功創建另一個對話框進行確認。

+0

我從來沒有用ajax編程,所以我不熟悉它。但我想我只需要將$ SQL_delete_user綁定到if clausel。我只是不知道如何 – JOP

2

在這部分你打電話給PHP的重定向(我想?)在JavaScript中沒有PHP開標籤,所以這是行不通的。相反,如果'if'語句返回true(是),則可以使用javascript reditrect,然後使用get或變量的delete變量重定向到url,請參見下文。

編輯 - 你可能會想要的ID以及我做了調整。在你需要傳遞id的onclick PLus中,除非它存儲在一個會話變量或其他東西中,在這種情況下,你不需要將它傳遞給url。你的sql應該以「WHERE id =」結尾,然後把這個id粘貼到查詢上。這只是一個簡單的例子,讓你開始,始終謹慎的SQL注入,但我會離開阻止你。

<script language = "JavaScript" > 

    function deleteUser(id) { 
     if (confirm("Do your really want to delete your account?")) 
     { 
      window.location.href= 'intern.php?delete=true&id='+id; 
     } 
     else 
     { 
      window.location.href = 'intern.php?act=account'; 
     } 
    } 

</script> 
在intern.php檢查旁邊的變量得到

if(isset($_GET['delete'])) { 

    $mysqli = new mysqli(connection variables here); 
    $mysqli->query($SQL_delete_user.(int)$_GET['id']); 

} 

給一個嘗試,重新排列代碼,只要你喜歡,但應該把它做完。 至於錯誤,您不能使用關鍵字delete作爲函數名稱。最後一件事,爲了這個工作,使輸入類型「按鈕」

0

我搜索並努力解決這個問題,直到我做了一點橫向思考。

我用的JavaScript表現出隱藏DIV包含選擇Yes/No。

然後一個的onClick圍繞加載的PHP腳本隱藏的iFrame的選項。

的onClick圍繞沒有選項簡單地躲到DIV和什麼也不做。

一個好處是能夠以任何我想要的方式對div進行樣式設置,顯示並隱藏效果並將其放置在它看起來最好的位置。