2011-02-12 45 views
0

嘿所有,我似乎無法得到一個簡單的Ajax工作之間的PHP頁面和jQuery。我遵循了幾個教程。但實際上很難理解實際正在發生的事情。jquery ajax發帖

使用Javascript(JQuery的)

$(function(){ 
    $('#trigger').click(function(){ 
     askajax; 
    }); 

    function askajax(){ 
     $.post("ask.php",{ question: "canuseeme" } ,function(data) 
     { 
      if(data=='yes') 
      { 
      alert("answer is yes"); 
      } 
      else 
      { 
      alert("answer is no"); 
      } 
     }); 
    } 
}); 

的PHP:

if($_POST['question']){ 
    echo "yes"; 
} else { 
    echo "no"; 
} 

任何想法的傢伙?

編輯:感謝@Jacob

$('#trigger').click(function(){ 

     alert("doing ajax"); // THIS SHOWS 
     $.post("ask.php",{ question: "canuseeme" }, function(data) 
     { 
      if(data=='yes') 
      { 
      alert("answer is yes"); // THIS DOESNT 
      } 
      else 
      { 
      alert("answer is no"); // THIS DOESNT 
      } 
     }); 
    }); 
+0

似乎ask.php沒有響應該請求。是否在與JavaScript相同的文件夾中存在ask.php?您可能想要嘗試Firefox的FireBug插件,以查看瀏覽器從服務器獲得的響應。 – 2011-02-12 04:27:17

回答

3

這會工作:

$('#trigger').click(askajax); 

或者這樣:

$('#trigger').click(function() { 
    askajax(); 
}); 

但我喜歡做這樣說:

$(function(){ 
    $('#trigger').click(function(){ 
     $.post("ask.php",{ question: "canuseeme" } ,function(data) 
     { 
      if(data=='yes') 
      { 
      alert("answer is yes"); 
      } 
      else 
      { 
      alert("answer is no"); 
      } 
     }); 
    }); 
}); 

原因是您再也不會使用askajax函數,並且它只會在ready函數的作用域中定義,那麼爲什麼即使打擾了獨立函數定義呢?只需使用一個匿名函數並完成它。 :)

+0

嘿雅各。謝謝,我完全同意你的方法。還是行不通。這段代碼是否在你的最後? – goingsideways 2011-02-12 04:13:41

1

在第3行中,更改askajax;askajax();