ajax php response
$.ajax({
type: "POST",
url: "update.php",
data: {
type: "banadd",
gun: $('#banguninp').val(),
sebep: $('#bansebepinp').val()
},
cache: false,
dataType: "json",
success: function(resp)
{
console.log(resp);
},
error: function(xhr, status, error)
{
console.error(xhr);
}
});
Merhabalar bu şekilde bir ajax methoduyla post işlemi yapıyorum.
if(!empty($_POST) && $_POST['type'] == "banadd")
{
session_start();
$gun = $_POST['gun'];
$sebep = $_POST['sebep'];
$gunx = 0;
if($gun != 0) $gunx = time()+$gun*86400;
$qstr = "INSERT INTO `bans` (`Banlayan`, `Banlanan`, `IP`, `Sure`, `Tarih`, `Sebep`, `Serial`, `Latitude`, `Longitude`) VALUES ('Rodeiun', '".$_SESSION['dIsim']."', '".$_SESSION['dIP']."', '". $gunx ."', '".date("d/m/Y H:i")."', '".$sebep."', '".$_SESSION['dSerial']."', '".$_SESSION['dLat']."', '".$_SESSION['dLong']."')";
$query = $db->prepare($qstr);
$query->execute();
$array["sonuc"] = "#".$db->lastInsertId()." numarali yasaklama veritabanina kaydedildi.";
session_unset();
session_destroy();
echo json_encode($array);
}
PHP üzerindede bu şekilde postu işleme koyup geri yanıt veriyorum. Ama console da işler biraz farklı:
ajax seçeneklerinden dataType: "json" u kaldırdığımda
```html
<!DOCTYPE html>
<html lang = "en">
<head>
<title>KARDESLER SCP PANELI - DUZENLE</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css">
<link rel="stylesheet" href="css/index.css">
<script src = "https://code.jquery.com/jquery-3.6.0.js"></script>
<script>
$(document).ready(function()
{
$("#ban-ekle").on('click', function(e)
{
e.preventDefault();
$.ajax({
type: "POST",
url: "update.php",
data: {
type: "banadd",
gun: $('#banguninp').val(),
sebep: $('#bansebepinp').val()
},
cache: false,
success: function(resp)
{
console.log(resp);
},
error: function(xhr, status, error)
{
console.error(xhr);
}
});
});
});
</script>
</head>
<body>
{"sonuc":"#30 numarali yasaklama veritabanina kaydedildi."} </body>
</html>
```
console da bu sonuçları görüyorum.
Ben nasıl bu sonuçu çekebilirim jquery de?
Php'nin döndürmüş olduğu json çıktısı string olur. Değerlere ulaşman zor.
O yüzden gelen veriyi let newResp = JSON.parse(resp) kullanıp değerlere ulaşacaksın.
Ya da dataType: "json" eklemen gerekecek. Bu da seni yukarıdaki kodu yazmandan kurtarıyor.
dataType: "json" olursa;
$.ajax({
dataType: "json",
success function(jsResp) {
// {"sonuc":"#30 numarali yasaklama veritabanina kaydedildi."} gelen sonuca göre
console.log(jsResp.sonuc) // veya
$("div.alert.alert-success").html(jsResp.sonuc) // bootstrapp uyarılarına yansımasını istiyorsan.
}
})
dataType: "json" olmazsa;
$.ajax({
success function(resp) {
// {"sonuc":"#30 numarali yasaklama veritabanina kaydedildi."} gelen sonuca göre
let jsResp = JSON.parse(resp)
console.log(jsResp.sonuc) // veya
$("div.alert.alert-success").html(resp.sonuc) // bootstrapp uyarılarına yansımasını istiyorsan.
}
})
Sen nasıl kullanmak istiyorsun?