jQuery AJAX数据类型html使用

时间:2017-03-28 16:07:56

标签: php jquery ajax

您好我在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?

2 个答案:

答案 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代码有用。