我想使用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个字符串。
请任何人修改发送多个数据的代码。
答案 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函数来增强它,但这超出了这个答案的范围。