Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Получение данных ajax mysql (https://javascript.ru/forum/jquery/68093-poluchenie-dannykh-ajax-mysql.html)

shved86 25.03.2017 22:54

Получение данных ajax mysql
 
Добрый день. Подскажите пожалуйста, есть БД с значениями. есть код который динамически формирует HTML станицу
//получение  из таблицы 
header("Content-Type: text/html; charset=UTF8");
mysqli_query("SET NAMES utf8");
$link=mysqli_connect("localhost", "login", "pass", "DB"); 
mysqli_set_charset($link, 'utf8'); 
$query = mysqli_query($link, "SELECT s.description, v.value, u.unit_name, u.unit_type FROM sensor s, sensor_value v, parameter p, unit u WHERE s.sensor_id = v.sensor_id and s.sensor_id = p.sensor_id and v.param_id = p.param_sensor_id and u.unit_id = p.unit_id  and not exists  (select 1 from sensor_value b where v.sensor_id = b.sensor_id and v.param_id = b.param_id and dt > v.dt)");

 $table = '';
  $table .= '<table width="438" border="1">';
  $table .=  '<link rel="stylesheet" type="text/css" href="/www/stylesh.css">';

    
    for ($c1=0; $c1<mysqli_num_rows($query); $c1++) 
{ 
$row = mysqli_fetch_array($query); 

$table .= '<tr>' ; 
$table .= '<td width="198"><span class="r1">' .($row[description]). '</td>'; 
$table .= '<td width="48"><span class="r1">';
if ($row[unit_id < 4]) $table .=  ($row[value]).($row[unit_type]). '</td>'; 
else $table .=  ' <a href="/kolodec.php"><input class = "submitButton" type= "Button" id="Control Panel" " value="Настройка"></a>  </td>' ;
    
$table .= '</tr>' ;
 

} 

    echo $table;

.
Пробывал вызывать этот файл через ajax запрос раз в нескольно секунд и потом выводить значение чере document.write но в момент обновления картинка в браузере смаргивает.
Не могу поднять как сделать ajax запрос что бы значени обновлялись в реальном времени

рони 25.03.2017 23:05

shved86,
никогда не используйте document.write
http://api.jquery.com/load/

laimas 26.03.2017 09:20

<table width="438" border="1"><link rel="stylesheet" type="text/css" href="/www/stylesh.css"> - это ошибка. Стили нужно подключать до таблицы, а может и вообще не стоит этого делать здесь.

shved86 04.04.2017 23:33

Спасибо за помощ, рони,
load сработал. laimas,
стили поставил до таблици.
У меня еще вопросик возник. Я в цикле обращаюсь к MySql по средствам Ajax, и собираю динамически страницу, и вот решил что бы каждый раз ее не отображать проверять что если в переменную table пришло тоже значение что и в прошлой раз в цикле то страницу не обновляем. Но значение str.localeCompare("table") приходит -1 но я ожидал что после того как присвою значение str = table ответ будет 0 до тех пор пока что нить не поменяется в запросе. подскажите как можно это реализовать
<script>
  var str = "x";
  
   function show()
    {
     
      $.ajax({
        url: "/js/form1.php",
        cache: false,
        success: function(table){
          if ((str.localeCompare("table")) != 0){
            alert (str);
            str = table;
            alert (table);
            
            $("#div1").load("/www/js/form1.php");
          } 
           }
      });
  }

shved86 04.04.2017 23:38

Разобрался )
if ((str.localeCompare("table")) != 0){

table - надо было без кавычек написать

laimas 05.04.2017 03:32

Цитата:

Сообщение от shved86
что бы каждый раз ее не отображать проверять что если в переменную table пришло тоже значение что и в прошлой раз в цикле

А зачем запрашивать сервер то, что уже есть у клиента?


Часовой пояс GMT +3, время: 21:41.