@Vadim997

Как сделать так, чтобы mysql данный передавались на страницу без её обновления?

У меня возникла проблема в выводе данных из mysql на страницу. Есть ли такое событие в javascript или как вывести mysql данные без обновления страницы? Вот код:

//html

<!doctype html>
<html lang="ru">
<head>
	<title>Document</title>
</head>
<body>
	
	<div id="write" onclick = "getData();">saad</div>
	<script type="text/javascript" src="script.js"></script>
	
	
</body>
</html>

//javascript

	function getXMLHttpRequest() {
	  
			try {
			
				var xmlhttp = new XMLHttpRequest();
			}
			   
			catch(e1) {
			
				try {
					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				}
			
				catch(e2) {
			
					try {
						xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
					}
					catch (e3) {
			
						xmlhttp = false;
					}
				}
			}
		return xmlhttp;
	};
	
	function getData() {
	
		var xmlhttp = getXMLHttpRequest();
		xmlhttp.open("GET", "script.php", true);
		xmlhttp.send();
		
		xmlhttp.onreadystatechange = function() {
		
			if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				document.getElementById("write").innerHTML = xmlhttp.responseText;
			}
		}
	};

//php

	require_once "sql.php";	
	
	$result = mysqli_query($link, "SELECT *FROM text");
	
	while($row = mysqli_fetch_row($result)) {
		echo $row[1];
	}
	
	mysqli_free_result($result);
	mysqli_close($link);

//php_sql

	$link = mysqli_connect("localhost", "root", "" ,"blog");
	
	if(mysqli_connect_errno()) {
		printf("Не удалось подключиться: %s\n",mysqli_connect_error());
		exit;
	}
  • Вопрос задан
  • 3595 просмотров
Пригласить эксперта
Ответы на вопрос 5
takovoy
@takovoy
web developer
JavaScript:

var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4){
            document.getElementById('response').innerHTML = xhr.responseText;
            var responseArray = JSON.parse(xhr.responseText);
        }
    };
    xhr.open("POST", "php/myRequest.php");
    xhr.send();


PHP сервер:

<?php
    header("Content-type: text/txt; charset=UTF-8");

    $link = mysqli_connect('localhost', 'root', '', 'myDB');
    if (!$link) {
        echo('Ошибка соединения');
    }
    $result = mysqli_query($link, 'select * from myTable');
    $resultArray = array();
    while ($line = mysqli_fetch_array($result, MYSQLI_NUM)) {
        $resultArray[] = $line;
    }
    $result->close();

    $res = json_encode($resultArray, JSON_UNESCAPED_UNICODE);
    echo $res;

    $link->close();
?>


Ну тут отправляю запрос, пхп файлик дает ответ (echo $res), в нем я подключился к базе, взял нужное, преобразовал в массив, массив преобразовал к json строке и отправил. На клиенте ответ можно обратно спарсить в массив и работать.
Ответ написан
@iamnothing
AJAX вам в помощь. Ну и jQuery тоже :)
Ответ написан
Комментировать
galynsky
@galynsky
Ответ написан
Комментировать
Дополнение к первым ответам:
Когда нужно подгрузить новые данные, то javascript на странице делает ajax запрос на сервер.
Примерно так $.ajax()
На сервере должен быть ресурс (php-скрипт или что-то еще), который обработает этот запрос (например mysite.com/script.php)
Во время обработки запроса ресурс на сервере сделает запрос к базе данных (в вашем случае это mysql) и полученные данные выведет в виде json.
На клиенте полученные json данные обрабатываются и выводятся в удобном для пользователя виде.
Например так:
$.ajax(params).then(function(mysql_data){
    console.log(mysql_data);
})
Ответ написан
@Vadim997 Автор вопроса
Мне не нужен jquery. Я хочу сделать с помощью объекта xmlhttp.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы