отправка параметров с помощью ajax - PullRequest
1 голос
/ 24 мая 2010

Я пытаюсь отправить параметры, полученные из таблицы в моем jsp, в другой JSP, используя ajax. Я использую функцию 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.

Ответы [ 2 ]

3 голосов
/ 24 мая 2010

с последней строки:

xhr.send("NameCell1="+NameCell1,"NameCell2="+NameCell2,"NameCell3="+NameCell3,"NameCell4="+NameCell4,"NameCell5="+NameCell5,"NameCell6="+NameCell6,"NameCell7="+NameCell7 );

Это не способ объединения строк в JavaScript.

Поскольку вы используете JSP, вы должны знать и Java. Вам следует объединить строку в JavaScript так же, как в Java:

xhr.send("NameCell1=" + NameCell1 + ",NameCell2=" + NameCell2 + "etc...");

Тем не менее, это должно было произойти с ошибкой в ​​консоли JavaScript. Вы обратили на это внимание? В любом случае, для лучшей отладки JavaScript я предлагаю вам взять Firebug , а также для менее многословной / непрозрачной и более кросс-браузерной совместимой обработки Ajax и обхода HTML DOM, я настоятельно рекомендую вам посмотреть jQuery . С jQuery и Ajax Form Plugin вы были бы готовы только со следующими строками:

$(document).ready(function() {
    $('#formId').ajaxForm(function(response) {
        $('#prjsel').html(response);
    });
});

Таким образом, вам не нужно беспокоиться о деталях браузера и о том, как правильно отправить запрос.

0 голосов
/ 24 мая 2010

Метод send принимает только один аргумент.Вы не можете преобразовать свои данные, так что это строка application / x-www-form-urlencoded.

т.е. набор ключей и значений (где все ключи и значения обрабатываются с помощью encodeURIComponent разделены амперсандами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...