为什么name
未定义?
$('#langs li').click(function(){
var name = $(this).attr('value');
$.ajax({
type: "POST",
url:'test.php',
data: 'name='+name,
success:function(raspuns){
//$('#content1').html(raspuns);
var ras = raspuns;
$.ajax({
type: "POST",
url: "index.php",
data: 'ras='+ras;
)};
}
});
});
答案 0 :(得分:1)
如果您的意思是raspuns
似乎未定义,可能是因为您没有echo
来自test.php
的回复?
<强> test.php的强>
...
echo 'this is my response';
AJAX致电
$.ajax({
...
success: function(raspuns) {
// raspuns == 'this is my response'
}
});
而且,如果您传递POST数据,我认为如果传递JSON对象会更好,如下所示:
$.ajax({
url: 'test.php',
type: 'POST',
data: {name: name},
...
});
答案 1 :(得分:1)
您可以查看以下几点: 确保在发送之前有数据。你有李的价值属性吗?或者如果你想获得li内容,请使用html()或txt()。但是你可能想在li里面获得输入字段值?然后使用$(this).find(“input”)。val()如果你只有一个输入。 然后其他人检查:
1)访问http://example.com/test.php以确保它正确回应响应。您可能在php中有错误或链接可能无法访问。
2)你的网址是这样的:http://example.com/test.php?如果您的本地计算机中有虚拟主机,例如http://example.local/test.php,那也没关系。但是如果你有类似
的东西,它将无法工作http://localhost/mysite/test.php
除非您在ajax调用完整链接中更正路径。
3)确保您的javascript在发送之前没有失败。我的意思是,你能做警报(姓名)吗?您还可以在成功之上使用beforeSend()来检查是否正确结束数据。
4)确保您没有尝试制作跨域ajax请求,因为您无法使用POST执行此操作。
5)我认为可以尝试使用“/test.php”而不是“test.php”,尽管这不是问题。
您还可以使用控制台查看正在发生的事情。
答案 2 :(得分:0)
li
个元素不支持value
属性。也许您正在通过li
寻找输入或.html()
的内容。
请参阅此演示,name
未定义:http://jsbin.com/IzOXiJOZ/2/edit