我使用两个jsp来搜索记录,另一个用于更新数据库的记录。搜索查询将返回一个json对象,其中包含所有搜索到的记录,我将动态生成行到表中进行显示。为了更新记录,我在每一行都保持链接。 在这里,我必须将json对象传递给更新的jsp文件以加载值。所以,我只是传递了json对象。但是,我无法处理json对象。帮帮我。谢谢。请找到以下代码:
function retrievesrchrec(){
var result = xmlHttp.responseText;
if(result.length>1){
var dbRecords = JSON.parse(result);
if(dbRecords)
{
while(dbRecords[index])
{
dbRecord= dbRecords[index];
var rbutton = document.createElement("input");
rbutton.type = "a";
rbutton.href = function(){
javascript:loadModify(jsonobj);
};
}
}
}
}
function loadmodify(jsonobj){
alert(jsonobj);
}
答案 0 :(得分:3)
JSON对象不过是常规的javascript对象。如果将它作为参数传递给函数,它应该可以工作。问题出在其他地方。
试试这个版本:
function retrievesrchrec(){
var result = xmlHttp.responseText;
if(result.length>1){
var dbRecords = JSON.parse(result);
if(dbRecords)
{
var index=0;
while(dbRecords[index])
{
dbRecord= dbRecords[index];
var rbutton = document.createElement("A");
rbutton.href = loadModify(dbRecord);
index++;
}
}
}
}
function loadModify(jsonobj){
alert(JSON.stringify(jsonobj));
alert(jsonobj.EnvLabel);
return "http:\/\/www.example.com";
}
答案 1 :(得分:1)
$.ajax({
type: "POST",
url: "JSONService.asmx/TestJSON",
data: '{"Name":"mohammad","Company":"Faraconesh"}',
contentType: "application/json; charset=utf-8",
dataType: "json"
});
和服务代码
public string TestJSON(string Name,string Company)
{
Employee e = new Employee();
e.Name = Name;
e.Company = Company;}
Name
&我方法中的Company
是我的jason abject值
答案 2 :(得分:0)
我在您发布的代码中可以看到的潜在问题:
来自while循环的'index'变量在哪里声明,初始化和递增/更新?
在while循环中,您尝试创建一个类型为'a'且具有'href'属性的'input'元素 - 这两个元素对'input'元素无效。也许你真的应该创造一个'a'元素?
假设你确实有一个元素,'href'属性不是一个字符串吗?您将其指定为指向函数。
您的'loadmodify()'函数全部以小写形式声明,但使用大写'M'调用。
答案 3 :(得分:0)
这部分代码非常错误:
var rbutton = document.createElement("input");
rbutton.type = "a";
rbutton.href = function(){
javascript:loadModify(jsonobj);
};
<input>
设置为type
时创建a
元素。此类型不存在。它必须是text
,password
,隐藏,button
,submit
或reset
。href
属性。这里有两件事是错的:
<input>
元素没有href
属性。href
属性的值必须是字符串,而不是函数。javascript:
。jsonobj
传递给该函数,但您从未在任何地方定义它。我认为您最好创建<button>
并分配click
处理程序:
var rbutton = document.createElement("button");
rbutton.append(document.createTextNode('Click me!')); // you need some text
rbutton.onclick = function(){
loadModify(dbRecord); // pass dbRecord here
};