2013-02-20 57 views
1

我想使用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個字符串。

請有人更改發送多個數據的代碼。

回答

1

的問題是,你在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