Anlık Listeleme de post işlemi yaptıramıyorum
Bu şekilde anlık olarak verileri listeletiyorum onay formum lakin çalışmıyor
<div class="card-body">
<div class="table-responsive">
<div id="listeleme"></div>
</div>
</div>
$(document).ready(function() {
$("#listeleme").load("ajax/veriler.php");
});
setInterval(function() {$("#listeleme").load('ajax/veriler.php');}, 1000);
<?php if ($row['admin_onay'] == 0){ ?>
<td>
<form method="POST">
<div class="col-md-12">
<button type="submit" name="sipal" class="btn btn-primary">Onayla</button>
</div>
</form>
<?php if (isset($_POST['sipal'])) {
$islem = $db->prepare("UPDATE kurye_talebi SET admin_onay = ? WHERE id = ?");
$islem = $islem->execute(array(1,$row['id']));
if ($islem) {
}else{
}
}
?>
</td>
<?php }else{ ?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
evet gerekiyor. ancak get'in post'dan farkı illa parametre olması gerekmez. burayı ele alalım, prototurk.com sayfasını ziyaret ettiğinde bir get yani istekte bulunmuş olursun. bunu yaparken bir veri göndermen gerekmiyor yani. hatana gelirsek, çözümü bulmana rağmen tekrar hata değinmek istiyorum kafa şişirmeyeceksem eğer. kodun ne yaptığını bilmekten ziyade, nasıl çalıştığını bilmek daha iyidir.
site.com adresinde bir load çalıştırdın ve site.com/sayfa.php adresinden veri aldın. buradan ne alabilirsin? sadece istemci tarafından gözükenleri alabilirsin yani verilen yanıtı. sen ise, orada sunucu koşulu oluşturup dahil etmeye çalışıyorsun. php de bulunan include gibi, ama bu mümkün değil. bu yüzden post koşulun çalışmadı. çünkü site.com'un index'inde sunucu da öyle bir koşul hiç olmadı istemci tarafından dahil etmek istediğin için.
yapıya gelirsek eğer, ilk koşulun admin onayının sıfıra eşit olması, örneğin bunu basit bir ajax işlemi ile yapıyor olsaydım, post veya get isteğinde bulunurdum ve sadece admin_onay değerini alırdım, 0 ise javascript ile formu gösterebilir veya sıfırdan oluşturabilirdim. kendini zorlamanı tavsiye ederim. acil bir iş değil ise eğer yazdıktan sonra çalıştır sonra durup düşün nasıl daha sistemli ve iyi olur diye. bende senin gibi kod yazıyordum, samimi söylüyorum bu şekilde yazmaya devam edersen ilerleme katedemezsin.
basit bir örnek, üstelik index dosyası php bile değil;
index.html
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div class="card-body">
<div class="table-responsive">
<div id="listeleme">
<form style="display:none">
<div class="col-md-12">
<button type="button" name="sipal" class="btn btn-primary">Onayla</button>
</div>
</form>
</div>
</div>
</div>
</body>
<script>
$(document).ready(function() {
$.ajax({
url : 'test.php',
type: 'GET',
data: null
}).done(function (data){
if(data == 0){
$('form').show()
}else{
$('#listeleme').text('Yetkilendirme Başarısız!');
}
});
$('[name="sipal"]').click(function(){
$.ajax({
url : 'test.php',
type: 'POST',
data: "sipal=true"
}).done(function (data){
$('form').hide();
$('#listeleme').append(data);
});
});
});
</script>
</html>
post dosyası olan test.php
$row['admin_onay'] = 0;
$islem = array(
0 => ["siparis_id" => 1, "kurye" => "Burak"],
1 => ["siparis_id" => 22, "kurye" => "Ali"],
2 => ["siparis_id" => 35, "kurye" => "Ali"],
3 => ["siparis_id" => 47, "kurye" => "Burak"]
);
if(!isset($_POST)){
echo $row['admin_onay'];
}else{
if(isset($_POST['sipal'])){
foreach($islem as $key => $val){
echo "Siparis numarası: ".$val["siparis_id"]." Kurye: ".$val["kurye"]."<br>";
}
}
}
ajax ile veri çekmek için bir post veya get verisi göndermek gerekmiyor mu hocam
ben direkt veri listeletiyorum formdaki verinin anlık gelmesi önemli değil
atıyorum admin_onay diye bir tablo var bu tabloda ki verileri anlık yansıtmam gerekiyor
forma bir action atadım farklı biyer de islem yaptırıp tekrar aynı sayfaya yönlendiriyorum böyle bir çözüm buldum
mantiksal acidan hatali. calismamasi normal. goreceli bir adresden form verisi alarak, static bir adres de post isteginde bulunuyorsun. ajax kullan, mumkunse json degerler ile geleb sonuclari yazdir. daha saglikli. veya ajax kullan ve yine html deger dondur.
mobilim geri donup duzenleyemedim. kisaca ajax kullan. kullanmayacaksanda if(post) kullanimini ajax verilerede degil onu dahil ettigin sayfaya yaz