2012-06-25 3 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이 아닌 GET을 사용합니다. OP의 예와 비슷합니다. – Cranio

+0

잊어 버렸습니다. 편집 됨. – TNC

+0

편집 해 주셔서 감사합니다. – Cranio

0

이러한 문제는 대부분 비동기, AJAX로 인한 것입니다. 요청 - 응답 AJAX 왕복이 완료되지 않는 한 AJAX (.post(), .load(), .ajax(), .get())를 통해로드 한 모든 항목은 "존재하지 않습니다".

하는 콜백 함수 당신이 AJAX (A 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

test의 ID 뭔가가 다음이 수행을 클릭 할 때 그냥 PHP 파일에 jQuery를에서 정보를 게시하려고하는 경우 :

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); 
     ); 
});