2015-05-13 2 views
1

У меня вопрос. У меня есть функция удаления в моем внешнем javascript (ajax), который я использую для запуска, чтобы запрос на удаление в моем PHP-файле был выполнен.Что должно быть внутри onreadystatechange?

Что я хочу узнать, это то, что должно быть внутри функции onreadystatechange. Перед тем, как только отобразить таблицу, есть предыдущая функция. Внутри функции onreadystatechange находится

document.getElementById("divTable").innerHTML=xmlhttp.responseText; 

Так что теперь я смущен, не могу ли я поставить то же самое или? Как получить запрос для выполнения, а таблица отобразить новые результаты после удаления записи?

function.js Javascript Файл:

function deleteThis(count){ 

var name = document.getElementById("row"+count).innerHTML; 
var page = "database.php"; 
var parameters = 'name='+name+'&action=delete' 
var xmlhttp = new XMLHttpRequest(); 

if(confirm('Are you sure you want to delete this?')==true){ 

if(xmlhttp==null){ 
    alert("Your browser does not support ajax!"); 
    return false; 
    } 
xmlhttp.onreadystatechange=function(){ 
//what should be in here 
}; 
    xmlhttp.open("GET", page+"?"+parameters, true); 
    xmlhttp.send(null); 
} 
} 

Внутри database.php файла:

     . 
         . 
       Other lines of code 
         . 
         . 


function deleteRow($name){ 
    $table_info = "info"; 

    $query_string = "delete from $table_info where id = '$name'"; 
    $result = @mysql_query($query_string); 
} 
?> 

<?php 
    $name = rtrim($_REQUEST['name']); 
    $action = rtrim($_REQUEST['action']); 

    if($action=="delete"){ 
    echo deleteRow($name); 
    } 
    else{ 
    echo update_database(); 
    } 
?> 
+1

* «что должно быть внутри функции onreadystatechange» * код, который обрабатывает ответ сервера. –

+0

Я вижу. Итак, что, если я хочу отобразить ту же таблицу, но с последним результатом, что означает после удаления. Я не могу удалить строку в базе данных. – hzq

ответ

1

От MDN

Возвращает EventHandler, который вызывается всякий раз, когда изменяется атрибут readyState. Обратный вызов вызывается из потока пользовательского интерфейса.

Таким образом, при изменении readyState вы можете увидеть статус запроса в этом атрибуте.

0 UNSENT open() еще не был вызван.

1 ОТКРОЙТЕ send().

2 HEADERS_RECEIVED send() был вызван, а заголовки и статус доступны.

3 LOADING Скачивание; responseText содержит частичные данные.

4 DONE Операция завершена.

1

Он должен быть ответ сервера, а некоторые испытания, если Аякса успех или ошибка

xmlhttp.onreadystatechange=function(){ 
    //what should be in here 
    if (xmlhttp.readyState === 4 && xmlhttp.status === 200) { 
     console.log(xmlhttp.responseText) // response of your server 
    } else { 
     console.log("Error") 
    } 
}; 
0

Спасибо за информацию и помогите ребятам. Кстати, то, что я имел в виду буквально то, что было внутри:

xmlhttp.onreadystatechange=function(){ 
document.getElementById("divTable").innerHTML=xmlhttp.responseText; 
}; 
Смежные вопросы