我试图让.load
方法发布到页面然后回显发布的内容以查看它是否正常工作,我无法使其工作。我告诉我变量是未定义的,这是我所拥有的:
teachers.php:
<?php
echo $POST['class'];
JS:
$('#test').load('teacher.php', {class: 'test'});
一旦点击某事就会触发。
#test
是我希望将数据发布到的<div>
。
感谢您的帮助。
答案 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);
);
});