2016-12-15 2 views
-1

Это может быть очень просто, но я не могу понять, что является лучшим способом позвонить AJAX на событие нажатия кнопки на странице и получить данные с сервера на отображаться с использованием php.Попытка получить данные на веб-странице через php и ajax

Что у меня есть простой веб-страница называется div.php:

<html> 
<head> 
    <title> 
     Test 
    </title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"> 
     $(document).ready(function(){ 
      $('#btn').click(function(){ 
       $("#data").html('Loading...'); 

       $.ajax({ 
        url:'test.php', 
        type:'GET', 
        success:function(data){ 
         $("#data").html(data); 
        } 
       }); 
      }); 
     }); 
    </script> 
</head> 

<body> 
    <form method="get"> 
     <button id="btn"> 
      Get Data from PHP file 
     </button> 

     <div id="data"> 
     </div> 
    </form> 
</body> 
</html> 

А потом страница за ней делать операции с базой данных, test.php:

<?php 
    include ("config.php"); 

    $sql = "SELECT * FROM userInfo;"; 
    $result = mysql_query($sql); 

    $row = mysql_fetch_array($result, MYSQL_ASSOC); 
    $count = mysql_num_rows($result); 

    if ($count > 0) { 
     while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
      echo $row["userLogin"] . "<br>"; 
     } 
    } 
?> 

Это довольно простое, и я должен получить результат запроса при нажатии кнопки, но он не работает. Здесь что-то не так?

Любая помощь или идеи для понимания PHP от AJAX до JS поток будет по достоинству оценен.

+1

Функция 'json_encode' в php-файле для кодирования массива, который вы хотите использовать для переменной данных в JS, а затем использовать' JSON.parse (data) 'в javascript. Вы действительно должны прекратить использовать старые функции mysql. http://php.net/manual/en/class.pdo.php http://php.net/manual/en/class.mysqli.php –

+0

Получаете ли вы какие-либо ошибки JS, ошибки PHP? Можете ли вы загрузить test.php в браузере? – Chris

+0

oh yes, 'test.php' загружается в браузере с результатом запроса. Но когда я нажимаю кнопку в 'div.php', ничего не происходит. В идеале он должен вытащить результат запроса из 'test.php', но, к сожалению, это не так! – Neels

ответ

2

Вам необходимо встроить JS отдельно, вы не можете делать то, что вы сделали, но нужно разбить, как показано ниже.

+0

Разделение скриптов, похоже, сработало. Благодаря! – Neels

+0

Добро пожаловать. – Robbie

1

Это трудно отладить на основе ограниченной информации, хотя я думаю, что это может быть проблемой. Ваш элемент <button> находится внутри элемента <form>. Это означает, что при нажатии кнопки он отправляет форму и перезагружает страницу. Возможно, ваш AJAX работал, но страница перезагрузилась, поэтому вы не увидите данные. Решение:

  • Либо удалите ваш <form> со страницы или посмотреть в e.preventDefault() для функции кнопки мыши в JQuery.

С другой стороны, вы должны перенести свой код на другую библиотеку, такую ​​как PDO для доступа к базам данных, поскольку функции mysql_ * больше не должны использоваться.

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