@Medvedoc

Как доработать генератор фраз, чтобы они грузились через ajax?

Здравствуйте! Есть вот такой код
<?php 
	//Генерируем фамилию
	$famtxt = file('comments.txt'); 
	$famstr = $famtxt[ array_rand($famtxt) ]; 
	unset($famtxt);
?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
	<title>Генератор</title>
	<meta name="keywords" content="генератор" />
	<meta name="description" content="Генератор" />
	<link href="css/bootstrap.css" rel="stylesheet">
	<link href="css/style.css" rel="stylesheet">
	<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
</head>

<body>

<div class="wrapper">
	<main class="content">
		<div class="ribbon"><div class="ribbon-stitches-top"></div><strong class="ribbon-content"><h1>Генератор</h1></strong><div class="ribbon-stitches-bottom"></div></div>
		<div class="gendata">
			<div class="form-group">
			    <?php echo $famstr; ?>
			</div>
			<button onClick='parent.location="javascript:location.reload()"' class="btn btn-success">Хочу другую фразу</button>
		</div>
	</main>
</div>


Он берет фразы из файла comments.txt и рандомно их выводит на странице.
1. Как сделать генерацию без перезагрузки страницы через ajax?
2. Как можно завязать все дело с mysql, чтобы фразы лежали в базе данных и брать их оттуда?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@Mysterion
1. Лучше вынести PHP-код в отдельный файл, там прописать:
<?php
if(isset($_POST['fam']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    $famtxt = file('comments.txt'); 
    return $famtxt[array_rand($famtxt)];
}

В шаблоне:
$(document).ready(function(){
$.ajax({
type: 'GET',
url: '/random_phrase.php',
data : 'fam=1',
timeout: 25000,
success: function(data) {
$('div.gendata div.form_group').html(data);
}
});
});

2 А о получении данных из базы mysql на php в гугле ну очень много статей с готовым кодом. Просто результат получения отдавать при запросе и все.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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