作者anawak (...)
看板Ajax
標題[問題] post之後,function無作用
時間Tue Mar 11 14:20:05 2014
有一個很怪的問題,youtube上的教學影片跟我照著打的結果竟然不一樣。
1.某支js檔會先執行這個:
$(function(){
$.get('dashboard/xhrGetListings', function(o){
$('.del').click(function(){
var id = $(this).attr('rel');
$.post('dashboard/xhrDeleteListing', {'id': id},function(o){
alert(1);
}, 'json');
return false;
});
}, 'json');
});
2.然後紅色那一段,會去執行資料庫操作,刪除指定id的記錄。
function xhrDeleteListing(){
//$id = $_POST['id'];
//$sth = $this->db->prepare("DELETE FROM data WHERE id='$id'");
//$res = $sth->execute();
echo 2;
}
問題:
第2步資料庫操作完之後,第1步那個alert(1)都不會出來。
後來發現,第二步的 function 一定要丟出字串,不管是 echo 2 還是任何字串。
只要有echo東西出來,第1步的alert(1)就會執行。
但是教學影片裡面,第二步沒丟出任何東西,那個alert(1)還是有作用!
https://www.youtube.com/watch?v=4hh2IXrdT4g
第31分26秒可以看到第2步的內容。
第29分26秒,可以看到第1步的內容
怎摸會這樣?
順便提一下,這系列的影片對MVC入門還不錯,講的很清楚。
只是講師有時候會有小bug。用英文講的,我是覺得還不難啦。
聽不懂的部份看畫面就知道在做什麼。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.86.165
1F:推 Kenqr:$.post這段會把php回傳結果當成json格式處理 03/11 21:10
2F:→ Kenqr:大概是因為格式不對所以就沒執行callback 03/11 21:11
3F:→ Kenqr:把$.post的最後一個參數拿掉試試吧 03/11 21:12
※ 編輯: anawak 來自: 61.231.86.165 (03/12 01:41)
找到問題了。這一行:
$('.del').click(function(){
要改成:
$('.del').live('click', function() {
※ 編輯: anawak 來自: 61.231.86.165 (03/12 02:18)
4F:推 arliang:請問為什麼要改成.live('click' 03/12 10:39
5F:→ anawak:還是有問題!請見下篇。 03/12 17:23