2016-04-12 3 views
0

, что моя цель состоит в том, чтобы использовать AJAX вызвать мою функцию PHP:Ajax запрос с PHP на БД MySQL

function getAns($mysqli) 
{ 
    $stmt = $mysqli->prepare(' 
    SELECT `user_id`,`user_name`, `user_ans` 
    FROM `tbl_user` 
    WHERE `user_ans` != ""'); 
    $stmt->execute(); 
    $stmt->bind_result($id, $user, $ans); 
    $O =""; 
    $x = 1; 
    $O.="<table><form action=\"#\" method=\"POST\">"; 
    while($stmt->fetch()) 
    { 
     if($x%2) 
     { 
      $O.= "<tr> 
        <td>".$user."</td><td>".$ans."</td><td><input id=".$id." type=\"submit\" name=\"pts\" href=\"#\" value=\"+\"></td> 
       </tr>"; 
      $x++; 
     } 
     else 
     { 
      $O.= "<tr> 
        <td>".$user."</td><td>".$ans."</td><td><input id=".$id." type=\"submit\" name=\"pts\" href=\"#\" value=\"+\"></td> 
       </tr>"; 
      $x++; 
     } 
    } 
    $O.= "</form></table>"; 
    // close statement 
    $stmt->close(); 
    return $O; 
} 

на заданный интервал времени, скажем, через каждые 5 секунд, используя AJAX/jQuery. Я пытаюсь иметь раздел ответа, который находится в div, автоматически захватывает вещи из моей базы данных и выводит их на страницу.

HTML Мой, что я пытался иметь их поместить в выглядят следующим образом:

<div id="ans" class="box3"><!--PHP Students answers --> 
    <form id="ans" action="<?php $_SERVER['PHP_SELF'] ?>" method="POST"> 
     <?php echo getAns($mysqli);?> 
    </form> 
</div> 

Я понимаю немного, как это работает, но я не понимаю, кода требуется, чтобы попасть туда. Я новичок в JavaScript/jQuery/AJAX, но я пытаюсь использовать его больше в своем коде, поэтому, если кто-нибудь сможет его разработать, это будет очень признательно, спасибо!

+0

«* так что, если кто-то мог бы разработать его, было бы очень благодарно *« Я думал об одном и том же. В чем проблема? Вы получаете ошибки? Что происходит? – Marcus

+2

Есть много учебников по использованию AJAX с jQuery. Если вы хотите, чтобы он запускался каждые 5 секунд, посмотрите на 'setInterval' Javascript. – Barmar

+1

И получите привычку создавать имена переменных, которые имеют смысл/описывают, что они держат. '$ O' не является хорошим именем переменной. Вместо этого используйте что-то вроде '$ html_output' – Marcus

ответ

2

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

И запустите свой sql-запрос в файле get_data.php.

$(document).ready(function(){ 
var timer, delay = 300000; //5 minutes counted in milliseconds. 
var ID = $("td :submit").val(); 
var info = 'userID=' + ID ; 
timer = setInterval(function(){ 
    $.ajax({ 
      url: "get_data.php",    
      type: "POST", 
      data: info, 
      success:function(data){ 
       $("#ans").html(data); 
      } 
      }); 
}, delay); 
}); 
0

Вы можете использовать Ajax для вызова файла PHP, который включает в свой код PHP он будет выполнять его на сервере, то он будет возвращает результат обратно к вам

$.ajax({ 
     url:"your_php_file_path.php", 
     success: function(result){ 
       //result is a variable that stores the value sent back from your php 
       // in your case $O 
     } 
}); 

Вы можете поместить этот код в функцию JS , наконец, вам нужно будет включить библиотеку JQuery, чтобы вы могли использовать ajax

+0

как бы я мог называть каждые X секунд? просто setInterval() ;? и для результата мне нужно поместить что-нибудь в файл, или это делается, когда выполняется php? – Apparatus17

+0

Это зависит, если вы собираетесь использовать вывод своего php в вызывающей функции или нет. Обычно мы используем вывод, чтобы отобразить некоторую дату, полученную из базы данных. Как вызвать функцию каждые X секунд, я понятия не имею, и, кажется, некоторые парни уже ответили на ваш вопрос выше –

+0

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

Смежные вопросы