как исправить проблему с функцией xmlhttprequest при вставке данных - PullRequest
0 голосов
/ 01 мая 2019

мой код работает, только если я добавлю этот код:

document.write(str);

, которые открывают новую страницу и записывают в нее вставку данных в базу данных

, но если я пытаюсь код без неевот так:

    function addcourse2(str,cn)
{
    xmlhttp=new XMLHttpRequest();
//document.write(str);  
xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState === 4 && xmlhttp.status == 200) { 

                       alert('response:'+xmlhttp.responseText);

            } else {

                       alert('failure!');
            }

};

    xmlhttp.open("GET","tpages/addcourse2.php?q="+str+"&p="+cn,true);

     xmlhttp.send();
}

здесь я получаю сообщение об ошибке, и ничего не вставляется в базу данных, мне нужно, и объяснение этого способа исправить это

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Давайте попробуем описать.

Примечание: при записи document.write в поток документов вызов document.write для закрытого (загруженного) документа автоматически вызывает document.open.

https://developer.mozilla.org/en-US/docs/Web/API/Document/write

Итак, этот AJAX-скрипт с document.write работает как с новой страницы, и каждый случай вызывает URL "" tpages / addcourse2.php? Q = "+ str +" & p = "+ cn"

Если закомментировано document.write, то браузер может кэшировать URL-адрес, а браузер читать из кэша и не вызывать тот же URL-адрес. Таким образом, вы можете использовать уникальную строку URL и проверить так.

Также может быть и другой случай.

0 голосов
/ 02 мая 2019

глядя на ваши комментарии, я понимаю, что страница обновляется после того, как вы нажимаете кнопку до того, как состояние достигает 4, тогда это код кнопки, чтобы предотвратить ее обновление

добавить возврат false;

<button "onclick='addcourse2("value1","value2");return false;'>add course</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...