使用ajax发送多个数据

时间:2013-02-20 05:12:36

标签: ajax jsp

我想使用ajax在数据库中添加数据,我在网上找到了以下代码,它运行正常。

<script language='javascript'>
reqObj=null;
function saveCust(){
    document.getElementById('res').innerHTML='processing';
    if(window.XMLHttpRequest){
        reqObj=new XMLHttpRequest();
    }else {
        reqObj=new ActiveXObject('Microsoft.XMLHTTP');
    }
    reqObj.onreadystatechange=processSave;
    reqObj.open('POST','./custSave?reqObj.open('POST','./cName?id='+document.getElementById('CustCode').value,true);,true);
    reqObj.send(null);
}
function processSave(){
    if(reqObj.readyState==4){
        document.getElementById('res').innerHTML=reqObj.responseText;
    }
}
</script>

上面的代码只发送一个字符串,但我的表单中有5个字符串。

请任何人修改发送多个数据的代码。

1 个答案:

答案 0 :(得分:1)

问题是您在reqObj.open函数中发送了一个参数:

reqObj.open('POST','./custSave?reqObj.open('POST','./cName?id='+document.getElementById('CustCode').value,true);,true);

请注意,您发送的唯一参数是id

您可以在QueryString的风格中添加更多参数:

id=something&otherParameter=else //and more parameters

IMO处理ajax请求的最简单方法是使用jQuery,如BalusC在How to use Servlets and Ajax?中所示并进行了大量解释。

根据那里的样本和jQuery Ajax POST example with PHP,您可以使用以下代码:

  • 假设5个字符串的格式为

    function saveCust(){
        $('#res').html('processing');
        var $form = $(this);
        var serializedData = $form.serialize();
        $.post('./custSave', serializedData, function(responseText) {
            $('#res').html(responseText);
        });
    }
    
  • 假设表格外有数据

    function saveCust(){
        $('#res').html('processing');
        var $form = $(this);
        var serializedData = $form.serialize() + "&id=" + $('#CustCode').val();
        $.post('./custSave', serializedData, function(responseText) {
            $('#res').html(responseText);
        });
    }
    

你甚至可以使用更多的jQuery函数来增强它,但这超出了这个答案的范围。