[問題] post之後,function無作用

作者: anawak (...)   2014-03-11 14:20:05
有一個很怪的問題,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)還是有作用!
http://www.youtube.com/watch?v=4hh2IXrdT4g
第31分26秒可以看到第2步的內容。
第29分26秒,可以看到第1步的內容
怎摸會這樣?
順便提一下,這系列的影片對MVC入門還不錯,講的很清楚。
只是講師有時候會有小bug。用英文講的,我是覺得還不難啦。
聽不懂的部份看畫面就知道在做什麼。
作者: Kenqr (function(){})()   2014-03-11 21:10:00
$.post這段會把php回傳結果當成json格式處理大概是因為格式不對所以就沒執行callback把$.post的最後一個參數拿掉試試吧
作者: arliang (凸鎚大法師)   2014-03-12 10:39:00
請問為什麼要改成.live('click'
作者: anawak (...)   2014-03-12 17:23:00
還是有問題!請見下篇。

Links booklink

Contact Us: admin [ a t ] ucptt.com