Javascript 检查我的代码。这是一种正确的附加方式吗?
单击时调用该函数,但不会重定向到saveQuesToDataBase.jsp。请看我是否可以通过这种方式将内容附加到url?告诉我更好的方法 testinput和testoutput是textareas的两个id数组。Javascript 检查我的代码。这是一种正确的附加方式吗?,javascript,ajax,jsp,Javascript,Ajax,Jsp,单击时调用该函数,但不会重定向到saveQuesToDataBase.jsp。请看我是否可以通过这种方式将内容附加到url?告诉我更好的方法 testinput和testoutput是textareas的两个id数组。 我使用循环检索id并获取值。对于您的代码设计,我有两个建议: a。首先,我建议您使用Ajax代替原来的Ajax,它将隐藏不同浏览器的实现。使用它,您可以如下所示: function saveToDataBase(save_id,textarea_id,question_no,as
我使用循环检索id并获取值。对于您的代码设计,我有两个建议: a。首先,我建议您使用Ajax代替原来的Ajax,它将隐藏不同浏览器的实现。使用它,您可以如下所示:
function saveToDataBase(save_id,textarea_id,question_no,assg_name,testinput,testoutput)
{
document.getElementById(save_id).addEventListener('click',function(){
//alert("Hello");
var question=document.getElementById(textarea_id).value;
var question_id=assignment_name+question_no;
var request;
var url="saveQuesToDataBase.jsp?question="+question+"&question_id="+question_id+"&assg_name="+assg_name;
for(var i=0;i<testinput.length;i++)
{
var v=document.getElementById(testinput[i]).value;
url=url+"&testinput"+i+"="+v;
}
for(var i=0;i<testoutput.length;i++)
{
var v=document.getElementById(testoutput[i]).value;
url=url+"&testoutput"+i+"="+v;
}
var len=testinput.length;
url=url+"&size_of_arr="+len;
if(window.XMLHttpRequest)
{
request=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
request=new ActiveXObject("Microsoft.XMLHTTP");
}
try
{
request.onreadystatechange=function()
{
if(request.readyState==4 && request.status == 200)
{
alert(request.responseText);
}
};
request.open("GET",url,true);
request.send();
}
catch(e){alert("Unable to connect to server");
}
})
}
b。由于Http Get方法具有参数长度限制,因此可以在中找到详细信息。在使用POST时,您需要使用POST而不是GET,何时可以使用数据向ajax传递更多参数:
Get将有查询参数长度限制,因此这对您的代码设计不利。请建议一种方法。
$.ajax({
url:your_request_url,
type:"post",//or get
data:your data,
success:function(data){},
error:function(){}
});
var params ={};//define a parameter object
for(var i=0;i<testoutput.length;i++)
{
var v=document.getElementById(testoutput[i]).value;
params["testoutput"+i]=v;
}
$.ajax({
url:your_request_url,
type:"post",//or get
data:params,//passing the parameters.
success:function(data){},
error:function(){}
});