1

我想使用 ajax 在数据库中添加数据,我在 net 中找到了以下代码,它工作正常。

<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 个字符串。

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

4

1 回答 1

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? .

根据那里的示例和带有 PHP 的 jQuery Ajax POST 示例,您可以使用以下代码:

  • 假设 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 函数来增强它,但这超出了这个答案的范围。

于 2013-02-20T05:31:36.523 回答