[英]sending parameters with ajax
我正在嘗試使用ajax將從jsp的表中獲取的參數發送到其他JSP。 我正在使用followinf函數將所有值發送到JSP:ajaxForm,但是我不知道為什么每次運行都發送失敗:
這是javascript函數:
function editarow() {
var xhr = getXhr();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
selects = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('prjsel').innerHTML = selects;
}
};
var row, firstNameCell, lastNameCell;
var table = document.getElementById("sheet");
var buttons = table.getElementsByTagName("button");
for (var i = 0; i < buttons.length; i++) {
if (buttons[i].name == "edit") {
buttons[i].onclick = function() {
row = this.parentNode.parentNode;
// The first name cell is the first child
NameCell1 = findElement(row.firstChild);
NameCell2 = findElement(NameCell1.nextSibling);
NameCell3 = findElement(NameCell2.nextSibling);
NameCell4 = findElement(NameCell3.nextSibling);
NameCell5 = findElement(NameCell4.nextSibling);
NameCell6 = findElement(NameCell5.nextSibling);
NameCell7 = findElement(NameCell6.nextSibling);
// `innerHTML` pour obtenir la valeur
/*alert("name 1 is " + NameCell1.innerHTML);
alert("name 2 is " + NameCell2.innerHTML);
alert("name 3 is " + NameCell3.innerHTML);
alert("name 4 is " + NameCell4.innerHTML);
alert("name 5 is " + NameCell5.innerHTML);
alert("name 6 is " + NameCell6.innerHTML);
alert("name 7 is " + NameCell7.innerHTML);*/
}
}
}
xhr.open("POST", "ajaxForm.jsp", true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send("NameCell1="+NameCell1,"NameCell2="+NameCell2,"NameCell3="+NameCell3,"NameCell4="+NameCell4,"NameCell5="+NameCell5,"NameCell6="+NameCell6,"NameCell7="+NameCell7 );
}
從表中獲取值后,我想將所有值發送到ajaxForm.jsp
。
從最后一行:
xhr.send("NameCell1="+NameCell1,"NameCell2="+NameCell2,"NameCell3="+NameCell3,"NameCell4="+NameCell4,"NameCell5="+NameCell5,"NameCell6="+NameCell6,"NameCell7="+NameCell7 );
這不是在JavaScript中連接字符串的方法。
由於您正在使用JSP,因此您也應該了解Java。 您應該以與Java中相同的方式連接JavaScript中的String:
xhr.send("NameCell1=" + NameCell1 + ",NameCell2=" + NameCell2 + "etc...");
也就是說,這在JavaScript控制台中應該已經出錯。 你注意了嗎? 無論如何,為了更好地進行JavaScript調試,我建議您抓住Firebug,並減少冗長/不透明和與跨瀏覽器的Ajax兼容以及HTML DOM遍歷,我強烈建議您使用jQuery 。 使用jQuery和Ajax表單插件,您只需要准備以下幾行:
$(document).ready(function() {
$('#formId').ajaxForm(function(response) {
$('#prjsel').html(response);
});
});
這樣,您就不必擔心瀏覽器的特定詳細信息以及如何正確發送請求。
send方法僅接受一個參數。 您無法轉換數據,因此它是application / x-www-form-urlencoded字符串。
即一組鍵和值(其中所有鍵和值都使用由&符號分隔的encodeURIComponent處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.