Кнопка Ajax готов / не готов без обновления - PullRequest
0 голосов
/ 22 июня 2011

Я довольно плохо знаком с кодированием, но я учусь по пути.мне удалось сделать мои кнопки в php etcetera, но, конечно, это обновляет страницу, что делает ее очень раздражающей.

Я оглянулся и узнал Ajax.Мне удалось получить определенные части страницы для автоматического обновления данных, а также мне удалось создать кнопку, которая меняет тест с Ready / Not Ready и отправляет данные в php-файл, который обрабатывает их и обновляет базу данных.

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

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

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

var xmlHttp_five = AJAX();
function ajaxFunction(pid) {
  var getdate = new Date();  //Used to prevent caching during ajax call
  if(xmlHttp_five) { 
    var txtname = document.getElementById("txtname");
    xmlHttp_five.open("POST","includes/gather_buttons.php",true); //calling testing.php using POST method
    xmlHttp_five.onreadystatechange  = handleServerResponse;
    xmlHttp_five.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp_five.send("txtname=" + txtname.value + "&pid=" + pid); //Posting txtname to PHP File
  }
}

function handleServerResponse() {
   if (xmlHttp_five.readyState == 4) {
     if(xmlHttp_five.status == 200) {

        if (document.myForm.button1.value == "Ready") {
            document.myForm.button1.value = "Not Ready";
            document.myForm.txtname.value = "Waiting";
        } else {
            document.myForm.button1.value = "Ready";
            document.myForm.txtname.value = "Ready";
        }
     }
     else {
        alert("Error during AJAX call. Please try again");
     }
   }
}

и форму ниже

<form name='myForm'>
    <input type='hidden' name='txtname' id='txtname' value='Ready'/>
    <input type='button' class='button2' id='button1' value='Ready' onclick='ajaxFunction($pid);' />
</form>

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

Заранее спасибо.

С уважением,

Йохан

1 Ответ

0 голосов
/ 27 июня 2011

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

В противном случае, если вы не можете сгенерировать форму с помощью серверного скрипта, вам следует использовать preloader: изначально значение кнопки должно быть «loading ...», а скрипт должен запрашивать значение у Ajax.

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