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?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
update.php nin ilk kısımlarında html kodları olmaması lazım, sonuca bunları da yazdırıyor çünkü. Ya bu güncelleme kodlarını başka sayfaya alacaksın ya da update.php nin en başlarına html kodlarından önce koyacaksın ve de echo json_encode($array);
den sonra exit();
yazacaksın.
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?