2012-06-25 57 views
0

我試圖讓.load方法發佈到一個頁面,然後回顯發佈的內容,看看它是否工作,我不能得到這個工作。我告訴我的變量是不確定的,這裏是我有:Jquery Ajax加載/發佈

teachers.php:

<?php 
echo $POST['class']; 

的JS:

$('#test').load('teacher.php', {class: 'test'}); 

,一旦事情被點擊時觸發。

#test是我想要數據發佈到的<div>

感謝您的幫助。

+0

您對此使用了錯誤的方法。使用'$ .post()'或'$ .ajax()' – ahren

回答

1

這是$_POST而不是$POST。不知道這是否是一個錯字,但這也會產生一些問題。

+0

錯誤。如果一個對象被傳遞而不是查詢字符串,它使用POST而不是GET。就像在OP的例子中一樣。 – Cranio

+0

忘記了。編輯。 – TNC

+0

感謝您的編輯:) – Cranio

0

這些問題大多數是由於AJAX的異步性。 通過AJAX加載的所有內容(包括.post(),​​,.ajax().get())不會「存在」,除非AJAX請求響應往返已完成。

確保在回調函數「用」你AJAX(一個HTML位,JSON響應,...)加載什麼,那就是呼籲AJAX請求的成功

例如讓我們說我的網頁ajax.php返回此字符串:<div id='ajaxdiv'>hello!</div>,我們想在#mydiv加載此(HTML)字符串:

$("#mydiv").load("ajax.php"); 
console.log($("#mydiv #ajaxdiv")); <- undefined 

它不會起作用,因爲代碼繼續無論完成請求。相反:

$("#mydiv").load("ajax.php", function() { console.log($("#mydiv #ajaxdiv"));}); 

作品因爲jQuery確保使用回調函數只有在請求已完成。 (您也可以添加參數,如{class: test},只需將它們放在URL和回調函數之間)。

編輯:使用$ _POST而不是$ POST。

0

如果你只是想從jQuery的發佈信息的PHP文件被點擊與test的ID東西時,那麼這樣做:

teachers.php:

<?php 
    echo $_POST['class']; 
?> 

的JS:

$('#test').click(function() { 
    $.post('teacher.php', {class: 'test'}, 
     function(output) { 
      //output = what is echoed from the php file. 
      alert(output); 
     ); 
});