2 回答
TA贡献1824条经验 获得超6个赞
尝试datatype
根据文档更改您的退货:
dataType - (默认:Intelligent Guess(xml、json、script 或 html)) 类型:String 您期望从服务器返回的数据类型。如果没有指定,jQuery 将尝试根据响应的 MIME 类型推断它(XML MIME 类型将产生 XML,在 1.4 中 JSON 将产生一个 JavaScript 对象,在 1.4 中脚本将执行脚本,其他任何内容都将是作为字符串返回)。
https://api.jquery.com/jquery.ajax/
因此 Jquery 代码将如下所示:
$("#html-container").empty();
$.ajax({
type: "POST",
url: "src/items.php",
dataType: "html",
data: {stype:st},
success : function(data) {
$('#html-container').html(data);
},
error : function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
甚至您可以dataType从ajax 方法中删除以接收任何数据:
$("#html-container").empty();
$.ajax({
type: "POST",
url: "src/items.php",
data: {stype:st},
success : function(data) {
$('#html-container').html(data);
},
error : function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
TA贡献1840条经验 获得超5个赞
更改您的后端代码,如下所示。
if (array_key_exists('stype', $_POST)) {
$dataStr = funcs_to_generate_html_code();
echo json_encode(array( 'html' => $dataStr ));
} else {
$dataStr = func_to_generate_html_code();
echo json_encode(array( 'html' => $dataStr ));
}
将 html 附加到 dom 的 Javascript 代码。
$("#html-container").empty();
$.ajax({
type: "POST",
url: "src/items.php",
dataType: "json",
data: { stype: st },
success: function (data) {
$('#html-container').html(data.html);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
我建议只从后端发送“数据”,然后使用 javascript 创建新的 HTML 元素并使用这些新元素修改 dom。
- 2 回答
- 0 关注
- 146 浏览
添加回答
举报