我有一些jQuery将两个变量发布到php脚本中。 PHP非常简单,只需根据给出的内容返回一个字符串,即“更新成功”,我想在页面上以某种方式使用它。
我第一次点击时收到一条提示“未定义”,任何进一步的点击,一切正常。很确定我不远,但我无法解决这个问题!
我使用过firebug并且数据已发布,所有尝试都会收到正确的响应。
$(document).ready(function(){
$('#updatehol').click(function() {
additions = $('#additions').attr('value');
deductions = $('#deductions').attr('value');
datastring = 'additions='+ additions +'&deductions='+ deductions;
$.ajax({
type: "POST",
data: datastring,
url: "doadjust.php",
complete: function(data) {
alert(data.responseText);
}
});
});
});
答案 0 :(得分:2)
对它进行排序。 Ajax函数中需要async: false
选项。
$.ajax({
type: "POST",
data: datastring,
url: "doadjust.php",
dataType: "html",
async: false,
success: function(data) {
alert(data);
}
});
答案 1 :(得分:1)
只有alert(data)
??
顺便说一下,它的成功还没有完成:
$.ajax({
type: "POST",
data: datastring,
url: "doadjust.php",
success: function(data) {
alert(data);
}
});
});
答案 2 :(得分:1)
这适合我。
var min = $.ajax(
{
type: 'POST',
url: 'LineChart.asmx/LineChrt',
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function(data) {
// alert("SUCESS");
},
error: function(xhr, status) {
alert("hatada:" + xhr.responseXML);
},
onComplete: function(data) {
}
答案 3 :(得分:0)
您应该添加json
类型,例如:
$('#test').on('click', '.testclass', function(event){
$.post($(this).attr('href'),
function(data) {
alert(data.text);
}, 'json');
});
答案 4 :(得分:0)
这是一个老问题,但我遇到了同样的问题,并在jQuery文档中找到了答案。
responeText和responseXml仅在使用dataType:text或xml时进行了解决。如果您使用任何其他数据类型,它将作为成功回调中的第一个参数传递。
来自jQuery文档:
数据类型
$ .ajax()函数依赖于服务器来提供信息 关于检索到的数据。如果服务器将返回数据报告为 XML,结果可以使用普通的XML方法或jQuery来遍历 选择。如果检测到其他类型,例如示例中的HTML 在上面,数据被视为文本。
使用dataType选项可以实现不同的数据处理。 除了普通的xml,dataType可以是html,json,jsonp,script或者 文本。
text和xml类型返回数据而不进行处理。数据是 简单地传递给成功处理程序,通过 jqXHR对象的responseText或responseXML属性, 分别强>