我想解析solr JSON对象并希望在网页中显示它。我使用了jQuery getJson。
<html>
<head>
<script type="text/javascript" src="jquery-1.6.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#submit").click(function(){
var q=getquerystring() ;
$.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&q="+q+"&json.wrf=?", function(result){
alert("hello");
$.each(result.response.docs, function(i,item){
alert(result.response.docs);
alert(item.UID_PK);
});
});
});
});
function getquerystring() {
var form = document.forms['f1'];
var query = form.query.value;
qstr = escape(query);
return qstr;
}
</script>
</head>
<body>
<form name="f1" >
<p>query: <input name="query" type="text">
<!-- <input value="Go" type="submit">-->
<button id="submit">Click Me</button></p>
<div id="result"></div>
<!--<p/><pre>Raw JSON String: <div id="raw"></div></pre>-->
</form>
</body>
</html>
当我使用$("#c2").click(function()
时,它不会进入$.getJSON()
,当我从代码中删除$("#c2").click(function()
时,它运行正常。为什么这样请解释。因为我想从onclickevent上的文本框中获取数据,然后显示响应。
答案 0 :(得分:0)
使用delegate
$(document).ready(function(){
$("#c2").delegate('click',function(){
var q=getquerystring() ;
$.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&q="+q+"&json.wrf=?", function(result){
$.each(result.response.docs, function(i,item){
alert(result.response.docs);
alert(item.UID_PK);
});
});
});
});
答案 1 :(得分:0)
你的查询字符串可能是罪魁祸首。您应该转义保留的URI字符。尝试将其更改为:
var getValues = { wt: 'json', q: q, 'json.wrf': '?' };
$.getJSON("http://192.168.1.9:8983/solr/db/select/", getValues, function(result){
jQuery会自动将对象转换为查询字符串AND转义错误字符。我在这里假设您的getquerystring
功能不应该受到责备。