我正在尝试使用以下代码从数据库中获取值( login.js )
$.post("http://awebsite.com/app/login.php",{ rep1: rep, password1:password},
function(data) {
if(data=='Invalid rep.......') {
$('input[type="text"]').css({"border":"2px solid red","box-shadow":"0 0 3px red"});
$('input[type="password"]').css({"border":"2px solid #00F5FF","box-shadow":"0 0 5px #00F5FF"});
alert(data);
}else if(data=='Repname or Password is wrong...!!!!'){
$('input[type="text"],input[type="password"]').css({"border":"2px solid red","box-shadow":"0 0 3px red"});
alert(data);
} else if(data !==''){
//$("form")[0].reset();
//$('input[type="text"],input[type="password"]').css({"border":"2px solid #00F5FF","box-shadow":"0 0 5px #00F5FF"});
//alert(data);
alert("Welcome " + rep + " !!");
var obj = JSON.parse(data);
//[{"wid":"2","repid":"1"}]
//objwid = obj[0]["wid"];
//objrepid = obj[0]["repid"];
objwsname= obj[0]["wsname"];
但我在此行Uncaught TypeError: Cannot read property 'wsname' of undefined
objwsname= obj[0]["wsname"];
错误
我在html中使用以下脚本
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.0rc1.min.js"></script>
<script src="jqm.autoComplete-1.5.2-min.js"></script>
<script src="src\jquery.tabletojson.js"></script>
<script type="text/javascript" src="js/login.js"></script>
答案 0 :(得分:1)
由于这只是一个对象,而不是一个包含一个或多个对象的数组,因此您无需提供索引 [0]
:
objwsname = obj["wsname"];
或:
objwsname = obj.wsname;
可以获得wsname
。
看看你是否有一个包含一个对象的数组,那么你必须得到它的索引,如:
// suppose this is the data
data = [{"foo":"bar"}, {"foo":"baz"}];
// ^----0------^ ^-----1-----^ // indexes of the objects inside data array.
所以这两个:
alert(data[0].foo); // alerts bar
alert(data[0]['foo']); // alerts bar
这里你需要索引。
答案 1 :(得分:0)
应该就是这样:
objwsname = obj.wsname;
obj是一个不是数组的对象。
如果传递给JSON
的{{1}}字符串包含一个数组,那么它将返回一个数组。在您的情况下,包含JSON.parse
对象的字符串被传递给JSON
- 因此它返回了一个对象。