Javascript 使用ajax将值发布到php时出现错误
我在将数据发布到php文件时出错。下面的代码Javascript 使用ajax将值发布到php时出现错误,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在将数据发布到php文件时出错。下面的代码 $.ajax({ type: "POST", url: url, data: "{'konuid='" + $('#step2-id').val() + "','kategoriid='" +$('#step3-id').val() +"'}", success: function(data){ $('#form-sorular').html(data);
$.ajax({
type: "POST",
url: url,
data: "{'konuid='" + $('#step2-id').val() + "','kategoriid='" +$('#step3-id').val() +"'}",
success: function(data){
$('#form-sorular').html(data);
},
error: function(data)
{
alert(data.d);
}
});
我检查了来自ajax的php文件中的值,值为空。。这个ajax有什么问题。您正在为
数据
值传递一个JSON格式的字符串,但我猜您的服务器代码期望值,就像您发布表单一样。因此,不是像这样的字符串:
{'konuid='step2-id-val','kategoriid='step3-id-val'}
konuid=step2-id-val&kategoriid=step3-id-val
您应该传递一个如下所示的字符串:
{'konuid='step2-id-val','kategoriid='step3-id-val'}
konuid=step2-id-val&kategoriid=step3-id-val
但是,您不应该自己连接字符串,而应该将数据
值设置为对象,然后JQuery将为您格式化字符串:
data: {
konuid: $('#step2-id').val(),
kategoriid: $('#step3-id').val()
},
注意:JQuery在构建字符串时将正确编码这些值
由于ajax调用显然返回html,我建议您包括
dataType
设置:
dataType: 'html',
此外,错误回调的签名为:
function(jqXHR, textStatus, errorThrown)
将错误设置更改为:
error: function(jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus + ', ' + errorThrown);
alert('Response: ' + jqXHR.responseText);
}
您正在为
数据
值传递一个JSON格式的字符串,但我猜您的服务器代码期望值就像您发布表单一样。因此,不是像这样的字符串:
{'konuid='step2-id-val','kategoriid='step3-id-val'}
konuid=step2-id-val&kategoriid=step3-id-val
您应该传递一个如下所示的字符串:
{'konuid='step2-id-val','kategoriid='step3-id-val'}
konuid=step2-id-val&kategoriid=step3-id-val
但是,您不应该自己连接字符串,而应该将数据
值设置为对象,然后JQuery将为您格式化字符串:
data: {
konuid: $('#step2-id').val(),
kategoriid: $('#step3-id').val()
},
注意:JQuery在构建字符串时将正确编码这些值
由于ajax调用显然返回html,我建议您包括
dataType
设置:
dataType: 'html',
此外,错误回调的签名为:
function(jqXHR, textStatus, errorThrown)
将错误设置更改为:
error: function(jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus + ', ' + errorThrown);
alert('Response: ' + jqXHR.responseText);
}
您正在为
数据
值传递一个JSON格式的字符串,但我猜您的服务器代码期望值就像您发布表单一样。因此,不是像这样的字符串:
{'konuid='step2-id-val','kategoriid='step3-id-val'}
konuid=step2-id-val&kategoriid=step3-id-val
您应该传递一个如下所示的字符串:
{'konuid='step2-id-val','kategoriid='step3-id-val'}
konuid=step2-id-val&kategoriid=step3-id-val
但是,您不应该自己连接字符串,而应该将数据
值设置为对象,然后JQuery将为您格式化字符串:
data: {
konuid: $('#step2-id').val(),
kategoriid: $('#step3-id').val()
},
注意:JQuery在构建字符串时将正确编码这些值
由于ajax调用显然返回html,我建议您包括
dataType
设置:
dataType: 'html',
此外,错误回调的签名为:
function(jqXHR, textStatus, errorThrown)
将错误设置更改为:
error: function(jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus + ', ' + errorThrown);
alert('Response: ' + jqXHR.responseText);
}
您正在为
数据
值传递一个JSON格式的字符串,但我猜您的服务器代码期望值就像您发布表单一样。因此,不是像这样的字符串:
{'konuid='step2-id-val','kategoriid='step3-id-val'}
konuid=step2-id-val&kategoriid=step3-id-val
您应该传递一个如下所示的字符串:
{'konuid='step2-id-val','kategoriid='step3-id-val'}
konuid=step2-id-val&kategoriid=step3-id-val
但是,您不应该自己连接字符串,而应该将数据
值设置为对象,然后JQuery将为您格式化字符串:
data: {
konuid: $('#step2-id').val(),
kategoriid: $('#step3-id').val()
},
注意:JQuery在构建字符串时将正确编码这些值
由于ajax调用显然返回html,我建议您包括
dataType
设置:
dataType: 'html',
此外,错误回调的签名为:
function(jqXHR, textStatus, errorThrown)
将错误设置更改为:
error: function(jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus + ', ' + errorThrown);
alert('Response: ' + jqXHR.responseText);
}
这将是正确的语法->,您如何在服务器端检查它;如果(empty($konuid)){echo“0”}我用这种方法检查值,这样键就存在了,但没有值。是否确定元素#step2 id正在返回值。-这是firebug post结果的屏幕截图。但是ajax错误部分正在运行并警告“未定义”,您不应该构建自己的ajax字符串。您插入的
.val()
中的任何JS元字符几乎肯定会使整个JSON字符串无效。这将是正确的语法->,您如何在服务器端检查它。$konuid=$\u POST['konuid'];如果(empty($konuid)){echo“0”}我用这种方法检查值,这样键就存在了,但没有值。是否确定元素#step2 id正在返回值。-这是firebug post结果的屏幕截图。但是ajax错误部分正在运行并警告“未定义”,您不应该构建自己的ajax字符串。您插入的.val()
中的任何JS元字符几乎肯定会使整个JSON字符串无效。这将是正确的语法->,您如何在服务器端检查它。$konuid=$\u POST['konuid'];如果(empty($konuid)){echo“0”}我用这种方法检查值,这样键就存在了,但没有值。是否确定元素#step2 id正在返回值。-这是firebug post结果的屏幕截图。但是ajax错误部分正在运行并警告“未定义”,您不应该构建自己的ajax字符串。您插入的.val()
中的任何JS元字符几乎肯定会使整个JSON字符串无效。这将是正确的语法->,您如何在服务器端检查它。$konuid=$\u POST['konuid'];如果(empty($konuid)){echo“0”}我用这种方法检查值,这样键就存在了,但没有值。是否确定元素#step2 id正在返回值。-这是firebug post结果的屏幕截图。但是ajax错误部分正在运行并警告“未定义”,您不应该构建自己的ajax字符串。您插入的.val()
中的任何JS元字符几乎肯定会使整个JSON字符串无效。