Javascript 检查我的代码。这是一种正确的附加方式吗?

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

单击时调用该函数,但不会重定向到saveQuesToDataBase.jsp。请看我是否可以通过这种方式将内容附加到url?告诉我更好的方法

testinput和testoutput是textareas的两个id数组。
我使用循环检索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(){}
});