Mam taki przykład w którym niezależnie czy dobrze sformułowane jest zapytanie do bazy danych czy nie to zawsze wyświetla się komunikat że informacje zostały prawidłowo dodane do bazy.
Nie umiem przerobić tego aby poprawnie wywołać (error:). próbowałem w pliku wyślij wstawiać różne echo ale nie umiem przechwycić tego w Ajax.
Będę wdzięczny za wszelką pomoc.
// plik: skrypt.js
$(document).ready(function(){
$('#wyslij').click(function() {
var wartosc_z_listy = $('#lista').val();
$.ajax({
type:"POST",
url:"wyslij.php",
data: {klucz_ajax:wartosc_z_listy},
success:function() {
alert("Wysłano do bazy danych");
console.log("Wysłano do bazy danych");
},
error: function(blad) {
alert( "Wystąpił błąd");
console.log(blad);
}
});
});
$('#pobierz').click(function() {
$.ajax({
type:"GET",
url:"pobierz.php",
contentType:"application/json; charset=utf-8",
dataType:'json',
success: function(json) {
$('#wykaz').html('');
for (var klucz in json)
{
var wiersz = json[klucz];
var id = wiersz[0];
var nazwakraju = wiersz[1];
$("<span>id: "+id+" nazwa: "+nazwakraju+"</span>")
.appendTo('#wykaz')
.append("<hr>")
}
},
error: function(blad) {
alert( "Wystąpił błąd");
console.log(blad);
}
});
});
});
// plik: wyslij.php
require_once('baza.php');
$wartosc_z_listy_post = $_POST['klucz_ajax'];
$zapytanie_wyslij = "INSERT INTO kraje (nazwa_krajux) VALUES ('$wartosc_z_listy_post')";
$wynik_wyslij = mysqli_query($db, $zapytanie_wyslij);
// plik: pobierz.php
header('Content-type: application/json');
require_once('baza.php');
$zapytanie_pobierz = "SELECT id, nazwa_kraju FROM kraje";
$wynik_pobierz = mysqli_query($db, $zapytanie_pobierz);
$pobrane_dane = array();
while ($wiersz = mysqli_fetch_row($wynik_pobierz)) {
$pobrane_dane[] = $wiersz;
}
echo json_encode($pobrane_dane);
// plik:baza.php
$serwer = 'localhost';
$uzytkownik = 'adam';
$haslo = 'test';
$nazwa_bazy = 'ajax_php_con';
$db = mysqli_connect($serwer, $uzytkownik, $haslo, $nazwa_bazy);
if (mysqli_connect_errno())
{
echo 'Błąd';
exit;
}
else {
}
// plik: index.html
<!doctype html>
<html>
<?php
require_once('baza.php');
?>
<head>
<meta charset="utf-8">
<title>Ajax</title>
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script src="skrypt.js"></script>
</head>
<body>
<br/>
<form>
<select id="lista">
<option value="Polska">Polska</option>
<option value="Węgry">Węgry</option>
<option value="Czechy">Czechy</option>
<option value="Austria">Austria</option>
</select>
<br/>
<br/>
<button id="wyslij" type="button">Wyślij</button>
<br/>
<br/>
<button id="pobierz" type="button">Pobierz wykaz</button>
</form>
<br/>
<br/>
<!--Blok przeznaczony na przechowanie informacji pobieranych z bazy-->
<div id="wykaz">
</div>
</body>
</html>