2013-06-24 172 views
0

讓我有一種形式,像這樣:發帖與阿賈克斯不工作

<form> 
    <input type="submit" value="X" id="deleteButton" onclick="ConfirmChoice(<?php echo $id; ?>)" /> 
</form> 

和這樣的功能:

<script type='text/javascript'> 
function ConfirmChoice(theid) 
{ 
    var dataString = 'id=' + theid; 
    answer = confirm("Are you sure you want to delete this song?"); 
    if (answer !=0) { 
     $.ajax 
     ({ 
      type: "POST", 
      url: "deleteSong.php", 
      data: dataString, 
     }); 
    } 
} 

</script> 

所以基本上我希望它刪除任何他們從我的數據庫點擊刪除宋將處理。 它給出歌曲的ID,據我所知應確認刪除,然後刪除它的權利? 任何幫助,將不勝感激。 感謝

+0

添加一個返回false;在功能 – Arun

回答

1

改變它

input type="submit"

input type="button" 
+0

聲明所以改變這個工作。謝謝。當它與ajax一起發送時,如何在完成更新changefs之後獲得頁面刷新? –

+0

location.reload();不會刷新頁面,但做阿賈克斯,你不想刷新頁面,我猜的整點!如果答案解決了您的問題,那麼您應該將其標記爲正確答案! (這將有助於誰在將來閱讀這個問題,這將幫助那些給出答案的人,它會幫助你,因爲你正在標記正確的答案,更多的人會願意回答你的問題) – Ali

0

而且因爲你不設置它,請求到服務器中,你的情況是嚴重的形成JSON。

嘗試是這樣的:

var dataString = "{'id'= '"+ theid + "'}"; 

這應該使其工作:)

0

很難回答這個不知道到底哪裏出了問題。 deleteSong.php是否正常工作?

像其他人說你應該輸入類型更改爲button或從你的函數返回false,否則瀏覽器會嘗試提交表單以正常的方式,但你有沒有指定的action<form>標籤內它將無法正常工作。

就個人而言,我會做的事情完全不同:

HTML:

<input type="button" value="<?php echo $id ?>" id="deleteButton"> 

的Javascript:

$(document).ready(function() { 
    $('#deleteButton').click(function() { 
     var answer = confirm("Are you sure you want to delete this song?"); 
     if (!answer) { 
      return false; 
     } 
     var data = 'id=' + $(this).val(); 
     $.ajax({ 
      type: 'POST', 
      url: 'deleteSong.php', 
      data: dataString, 
      success: function (response) { 
       // response will contain the output from your php script. 
       // Do something with it here. If you just want to see what it 
       // says, do something like: 
       console.log(response); 
       // then look in the console (view > javascript console in chrome) 
      } 
     }); 
    }); 
}); 

只是爲了解釋我在做什麼這裏(對不起如果我告訴你你已經知道的事情,我希望對任何可能b的人儘可能明確E在未來閱讀本:)

  • 茲附$(document).ready(function() { ... });整個事情,因此只有當頁面加載完成後總是會自動運行,其他明智的你可能最終試圖綁定上的按鈕功能,點擊動作那還不存在。
  • if (answer !=0)是多餘的,你可以只寫if (!answer)爲任意正整數將評估爲true
  • 我包括一個success回調上面這可能會幫助您進行調試。

有隻將是一個「刪除」整個頁面上的按鈕?或者每首歌曲旁邊都會有一個刪除按鈕?如果是後者,則必須爲每個按鈕分配一個不同的ID,而不僅僅是deleteButton,因爲所有ID都必須是唯一的。

如果上述不起作用,你確定jQuery已經正確加載了嗎?要檢查,在控制檯中輸入jQuery,如果你沒有得到一個錯誤,那麼你很好。另一種可能性是您的deleteSong.php腳本有問題,但我無法在沒有看到它的情況下幫助您。

+0

感謝您的幫助。隨心所欲地解釋一切,因爲我對這一切都比較陌生。是的,每首歌曲旁邊都有一個刪除。所以我決定只是將id傳入函數中。因爲它現在可以工作,所以我對它很滿意,但我想知道更多關於document.ready函數的信息。當我列入它不起作用,所以我正在考慮將它離開,但我覺得避免你所描述的問題是非常必要的。我應該追求使我的代碼與那個一起工作嗎? –

+0

我如何使ID獨特,但仍然設法讓所有的功能,如果我的動態? –

+0

看起來你並不需要使用ID,而是可以像上面那樣在'value'中存儲歌曲的ID,然後在jQuery中使用'.val()'獲取它。然後你可以給所有的按鈕一個CLASS'deleteButton',並用'$('。deleteButton')將它們綁定到它們上面。click(function(){.....})''。 – GMA