0

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

教师.php:

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

JS:

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

一旦点击某些东西就会触发。

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

谢谢您的帮助。

4

3 回答 3

1

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

于 2012-06-25T22:29:57.237 回答
0

大多数时候,像这样的问题是由于AJAX的异步性造成的。.post()除非请求-响应的 AJAX 往返行程已经完成,否则您通过 AJAX(带有、.load().ajax()、 )加载的所有内容.get()都不“存在”。

请务必在回调函数中“使用”您通过 AJAX 加载的内容(HTML 位、JSON 响应……),该回调函数在 AJAX 请求成功时调用。

例如,假设我的页面ajax.php返回此字符串:<div id='ajaxdiv'>hello!</div>,我们想将这个(HTML)字符串加载到#mydiv

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

它不起作用,因为无论请求是否完成,代码都会继续。反而:

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

之所以有效,是因为 JQuery 确保仅在请求完成时才使用回调函数。(您也可以添加类似 your 的参数{class: test},只需将它们放在 URL 和回调函数之间)。

编辑:使用 $_POST 而不是 $POST。

于 2012-06-25T22:32:18.137 回答
0

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

教师.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);
        );
});
于 2012-06-25T22:36:42.863 回答