Jquery Ajax加载/发布

时间:2012-06-25 22:22:49

标签: ajax jquery

我试图让.load方法发布到页面然后回显发布的内容以查看它是否正常工作,我无法使其工作。我告诉我变量是未定义的,这是我所拥有的:

teachers.php:

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

JS:

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

一旦点击某事就会触发。

#test是我希望将数据发布到的<div>

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

$_POST代替$POST。不知道这是不是一个错字,但这也会产生一些问题。

答案 1 :(得分:0)

大多数时候这些问题都归因于AJAX的异步性。 除非已完成请求 - 响应的AJAX往返,否则您通过AJAX(.post().load().ajax().get())加载的所有内容都不会“存在”。

确保在回调函数中使用AJAX(HTML位,JSON响应,......)加载“成功 em>的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。

答案 2 :(得分:0)

如果您只是在点击id为test的内容时尝试将信息从jQuery发布到PHP文件,请执行以下操作:

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