Проверка результата HTML-формы с использованием JavaScript - PullRequest
0 голосов
/ 23 мая 2011

Я использую HTML-форму для загрузки файла на мой сервер. Я хочу выполнить функцию JavaScript только после того, как форма была отправлена ​​и файл был успешно загружен. Форма открывает новую страницу с текстом «загрузка успешно завершена», если загрузка файла прошла успешно. Я попытался использовать цикл while, который бы зацикливался до тех пор, пока файл не был найден в базе данных, но мой браузер не работал. Как я могу это сделать? Я использую myform.submit () для отправки моей формы прямо сейчас.

Ответы [ 3 ]

2 голосов
/ 23 мая 2011

Если публикация прошла успешно, и вы сохранили файл перед тем, как очистить содержимое страницы, это легко.Страница не вернется, пока не завершится цикл публикации, поэтому вы можете вставить код javascript на страницу после сохранения файла.

1 голос
/ 23 мая 2011

одна простая вещь, которую вы можете сделать

использовать executesescalar для вставки загружаемого файла, как только он вставит возвращаемое логическое значение файла, чтобы проверить, вставлен ли он, если это так, то установите значение скрытого поля.в javascript проверьте значение скрытого поля и в соответствии с этим вы можете вызвать функцию javascript

1 голос
/ 23 мая 2011

Вы можете использовать AJAX для загрузки вашего файла, а также функцию асинхронного возврата (это событие, которое сработает, когда ваш запрос будет выполнен), чтобы получить сообщение об успешном или неудачном обращении вашего php.

EDIT:

Вот ajax-функция iv, которую вы можете использовать, просто загрузите ее в экстенальный файл:

var ajax = function(data){
// Return false is no url... You need an url to get url data..
if(typeof data.url !== 'undefined'){
    var url = data.url;
    // Adept the function depending on your method
    if(data.method === 'GET' && data.params  !== 'undefined'){
    url+='?'+data.params;
    }
}else{
    return(false);}
var // Set some vars 'n' stuff
method      = ( data.method  === 'GET') ? 'GET' : 'POST',
params      = (typeof data.params  !== 'undefined') ? data.params   : null,
async       = ( data.async   === true) ? true    : false,
done        = (typeof data.done    === 'function')  ? data.done     : false,
return_value    =  null,
length      = (data.method  === 'POST') ? data.method.length : '';

var // Find out what ajax methods the browser support
    request_method  =  function(){
    var xmlhttp =  false;
    try {
    xmlhttp = new XMLHttpRequest();
    } catch (trymicrosoft) {
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
        try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (failed) {
        xmlhttp = false;
        }
    }
    }
    return xmlhttp;
}// This thing connet to the server
connect = function(){
    if(request = request_method()){}else{
    return(false);
    }
    request.open(method, url, async);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.setRequestHeader("Content-length", length);
    request.setRequestHeader("Connection", "close");
    request.send(params);
    request_handle(request);
},// This is where the result get processed
request_handle = function(request){
    if(async){
    request.onreadystatechange = function() {
        if(request.readyState === 4 && request.status === 200) {
        done(data);
        }
    }
    }else{
    done(data);
    }
};

    connect();
return(return_value);
}

использование:

    ajax({
        url:    'test.php', 
        //// Your ajax request url              // no default // Must be set! 
        method: 'POST',  
        //// Method of sending ajax data            // default is POST
        async:  true, 
        //// What to do when done with the request      // no default
        done:   function(http){
        table(http,'test');
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...