用ajax发送多个数据

问题描述:

我想使用ajax来添加数据库中的数据,我发现下面的代码在网络中,它工作正常。用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个字符串。

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

的问题是,你在reqObj.open功能发送一个参数:

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

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

可以在查询字符串的风味添加更多的参数:

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函数来增强它,但这不在这个答案的范围之内。

+0

坦克很多Luiggi门多萨... – 2013-02-20 05:43:09

+1

不客气。如果这篇文章可以帮助你解决你的问题,请点击下面的检查点将其标记为答案。 – 2013-02-20 05:44:20