"Uncaught SyntaxError: Unexpected end of JSON input at JSON.parse" hatası
<form id="telefonform<?php echo $m['telefon_id'];?>" method="POST">
<div id="mailonay<?php echo $m['telefon_id'];?>" class="form-group">
<label class="form-label">E-Posta Adresi</label>
<input id="oymails" type="hidden" name="oy">
<input type="email" name="eposta" class="form-control" aria-describedby="emailHelp">
<div class="form-text">Geçerli Bir E-Posta Adresi Giriniz.</div>
</div>
<div id="onaykodu<?php echo $m['telefon_id'];?>" class="form-group">
<label class="form-label">Onay Kodunuz</label>
<input type="text" name="onay" class="form-control" >
<input type="hidden" name="onaykodu">
<div class="form-text">4 Haneli Onay Kodunuzu Giriniz.</div>
</div>
<button id="mailgonderbuton<?php echo $m['telefon_id'];?>" type="submit" class="btn btn-primary mt-3">Kod Gönder</button>
<button id="dogrulamakodbuton<?php echo $m['telefon_id'];?>" type="submit" class="btn btn-success mt-3">Anketi Onayla</button>
</form>
<script>
$(document).ready(function(){
$("#onaykodu<?php echo $m['telefon_id']; ?>").hide();
$("#dogrulamakodbuton<?php echo $m['telefon_id']; ?>").hide();
});
$("#telefonform<?php echo $m['telefon_id'];?>").on('submit',(function(e){
$.ajax({
url:"islem.php",
type:"POST",
data:new FormData(this),
contentType:false,
cache:false,
processData:false,
success: function(data){
veri=JSON.parse(data);
swal("Bilgi",veri.message,veri.status)
if(veri.islemno=="1"){
$("#oymails").attr('disabled');
$("#mailonay<?php echo $m['telefon_id']; ?>").hide();
$("#mailonay<?php echo $m['telefon_id']; ?>").remove();
$("#mailgonderbuton<?php echo $m['telefon_id']; ?>").hide();
$("#dogrulamakodbuton<?php echo $m['telefon_id']; ?>").show();
$("#onaykodu<?php echo $m['telefon_id']; ?>").show();
}else{
}
}
});
return false;
}));
</script>
sweetalert olarak kullanıyorum ilk formdan sonra ikinci form geliyor yani kullanıcı anket kodunu girip tamamlayacak fakan anketi onayla butonuna tıkladığımda Uncaught SyntaxError: Unexpected end of JSON input at JSON.parse hatasını alıyorum
<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
kaç gündür problemi çözemedim lütfen bilen birisi varsa yardım edebilirmi yada nere hata yapıyorum söyleyebilirmi ? şimdiden teşekkürler
islem.php 'de yazan kodlar ise bunlar hatalı olan div'i onaykodu olan form
if($mail->Send()){
$data['status']="success";
$data['message']="NOT:".$_POST['eposta'].' Adresine 4 Haneli Kod Gönderilmiştir.';
$data['islemno']="1";
echo json_encode($data);
}else{
$data['status']="error";
$data['message']="OLMUYOR";
echo json_encode($data);
}
if($_POST['onaykodu']){
$onay = strip_tags($_POST['onay']);
$data['status']="error";
$data['message']="OLMUYOR";
echo json_encode($data);
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (8)
Jsona parse etmeden denesen çalışır aslında, controllerinden dönen veri zaten json
İlk Form Başarılı bir şekilde dönüyor fakat ikinci formda Anketi Onayla Butonuna tıkladığımda hiç bir cevap alamıyorum @tayfunerbilen abi
<button id="dogrulamakodbuton<?php echo $m['telefon_id'];?>" type="submit" class="btn btn-success mt-3">Anketi Onayla</button>
bu butondan hiç bir şekilde cevap alamıyorum.
cunku zaten backend'den JSON donduruyorsun, su kismi kaldir:
veri=JSON.parse(data);
onun yerine direk data
kullan zaten javascript objesi dönüyor olacak. console'a bakıp gelen değerlere bakabilirsin:
console.log(data)
$.ajax metodunda dataType
olarak json
vermeyi denediniz mi?
$.ajax({
...
dataType: 'json',
...
})
islem.php ' den dönen cevap json formatında değil gibi duruyor. Cevabın tam olarak ne döndürdüğünü bilmeden ilerlemek zor.
Parse yapmadan önce dönen cevabı stringe çevirip parse yapmayı dene
const veri= JSON.parse(JSON.stringify(data));