Buton Çalışmaması.
<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" class="form-control" >
<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",
dataType:"json",
data:new FormData(this),
contentType:false,
cache:false,
processData:false,
success: function(data){
veri=(data);
console.log(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>
ilk form başarılı bir şekilde dönüyor fakat ikinci formda yani ID'si onaykodu olan formda Anketi Onayla Butonu tıkladığımda hiç bir cevap alamıyorum sebebi nedir ?
ıd'si onay kodu olan formun karşı tarafta yani islem.php'de dönen tarafı burası.
if($_POST['onaykodu']){
$onay = $_POST['onay'];
$data['status']="success";
$data['message']="başarılı";
echo json_encode($data);
}
<input type="hidden" name="onaykodu" class="form-control">
bu input'un type'ı hidden olduğu için aslında hiç ekranda görünmüyor olmalı. İlk ajax isteğinden dönen sonuçta bu input'un içine bir değer atamıyor olabilirsin.
Eğer bu input'un değeri yoksa, post edilirken boş string olarak PHP'ye iletiliyordur.
Böylece islem.php dosyandaki if
koşulun PHP için boş string kontrolüne dönüyor.
Yani if($_POST['onaykodu']) {
=> if("") {
oluyor.
PHP için if
koşulunda boş string ifadesi false
kabul edilir. Yani bu bloğa hiç giremiyor olabilirsin.
Bunu anlamak için if
bloğuna bir else
ekleyip yanıt olarak şunu dönebilirsin:
else {
$data['status']="missing parameter";
$data['message']="onaykodu şu şekilde iletildi: '".$_POST['onaykodu']."'.";
}
istek attığında konsolunda aşağıdaki gibi bir response görüyorsan sorun bu demektir.
{
"status": "missing parameter",
"message: "onay kodu şu şekilde iletildi: ''."
}
Eğer durum buysa, onaykodu input'una değer ataman gerekiyordur.