您好我在php中使用jquery ajax函数。这是我的问题; 首先我使用数据类型:" html"我的问题是php变量没有返回。
JS
$.ajax({
type: "POST",
dataType: "html",
url: ajaxurl,
data:dataajax,
success:function(data) {
var $data = $(data);
$(".list").append($data);
},
error : function(jqXHR, textStatus, errorThrown){
}});
PHP
echo "<div>".$_POST['value']."</div>";
如果我这样使用它可以正常工作但是当我删除html标签时,ajax什么都不返回。
破解php
echo myfunction($_POST['value']);
echo $_POST['value'];
我该如何解决这个问题,还是可以使用jquery ajax返回$ output?
答案 0 :(得分:2)
问题在于您的success
回调功能。
data
是一个html字符串,因此你不需要将它包装在jquery中。
使用此功能。
$.ajax({
type: "POST",
dataType: "html",
url: ajaxurl,
data:dataajax,
success:function(data) {
$(".list").append(data);
},
error : function(jqXHR, textStatus, errorThrown){
}});
答案 1 :(得分:0)
Ajax将JSON数据用于您的请求和响应。你想要做的是返回一个JSON变量,以便javascript响应函数可以正确访问元素。
幸运的是,php的目的就是做那件事。
$ajaxData = $_POST['value'];
echo json_encode(array('response' => $ajaxData));
你真的想用这些数据做什么?如果你需要做的就是在div中包含一些html,你可以在javascript中使用诸如wrap()之类的函数,而你实际上不必向服务器发送ajax。
无论哪种方式,您都应该考虑数据需求并尝试在ajax请求中发送json对象,以便发送实际变量。 html标记可能不会对php代码有用。