Witam masz dość duży problem z AJAX i PHP. Głównie rozchodzi się o to że nie mam pojęcia jak odbierać dane w PHP, wydaje mi się że mam jakiś błąd .Próbowałem szukać rozwiązania na wielu stronach ale nigdzie nie mogę znaleźć tego o co mi chodzi.Głównie w skrypcie chodzi pobieranie z Bazy Danych informacji i wyświetlanie ich na stronie dzięki ajaxowi (Formularz ma zmieniać dane i dzięki JQuery odpalać na nowo listę odpowiednio posortowaną i to nie działa ) Z góry dziękuje.
Plik index.html
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>
Strona
</title>
<style type="text/css">
b{background-color:red;}
</style>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="_js/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
function Pętla2()
{
$( function() {
$( "#accordion" ).accordion({
collapsible: true
});
} );
}
</script>
<script type="text/javascript">
$(document).ready(function()
{
$("#login").submit(function()
{
event.preventDefault();
$.ajax
({
type: 'POST',
url: 'Zawody.php',
data: $('#login').serialize(),
success: function(data)
{
$("#Glowna").load('Zawody.php');
}
});
});
});
</script>
</head>
<body>
<div id="Glowna">
</div>
</div>
<div id="Formularz">
<form id="login">
<input type="radio" name="Ocena" value="WHERE Ocena = 4 " id="Ocena" />4
<input type="radio" name="Ocena" value="WHERE Ocena = 5 " id="Ocena" />5
<input type="submit" id="submit" value="submit" />
</form>
</div>
</body>
</html>
Plik Zawody.php
<?php
echo"<div id='accordion'>";
$imie = 'AND Imie=\'Mateusz\' ';
$wiek = $_POST['Ocena'];
$zapytaniewynik = 'SELECT * FROM `dziennik2` '.$wiek.$imie;
$connection = @mysql_connect('localhost', '', '')
or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
$db = @mysql_select_db('test', $connection)
or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
$wynik = mysql_query($zapytaniewynik)
or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0)
{
while($r = mysql_fetch_array($wynik))
{
echo "<h3>".$r[1]."</h3>";
echo "<div><b>".$r[0]." ".$r[2]."</b></div>";
}
}
mysql_close($connection);
echo"</div>";
print "<script type='text/javascript'>";
print "Pętla2()";
print "</script>\n";
?>
I wiem że część z wiekiem jest błędna ale nie wiem jak ma wyglądać prawidłowo.
Plik SQL
-- phpMyAdmin SQL Dump
-- version 4.6.5.2
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 21 Lut 2017, 18:19
-- Wersja serwera: 10.1.21-MariaDB
-- Wersja PHP: 5.6.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Baza danych: `test`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `dziennik2`
--
CREATE TABLE `dziennik2` (
`Imie` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`Nazwisko` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`Ocena` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Zrzut danych tabeli `dziennik2`
--
INSERT INTO `dziennik2` (`Imie`, `Nazwisko`, `Ocena`) VALUES
('Mateusz', 'Urbaniec', 4),
('Mateusz', 'Urbaniec', 4),
('Marek', 'Czega', 5),
('Patryk', 'Czega', 3),
('Patryk', 'Urbaniec', 7),
('Mateusz', 'Czega', 5),
('Mateusz', 'Urbaniec', 3),
('Mateusz', 'Czega', 3),
('Mateusz', 'łółółółółó', 5);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
PS. To fikcyjne postacie :) i przepraszam za nazwy trochę pomieszane to (Baza znajduje się w Defaultowym TEST)
Na sam koniec nie mogę naprawić polskich znaków które nie chcą się wyświetlać prawidłowo jeżeli dane są odbierane z SQL