Menüyü de içine almasının sebebi başta header.php yi de sayfaya çağırmanız. Onun için postu yakalayan php kodlarından önce bir çıktı olmaması gerekli. Sayfanın en başına yazın dememin sebebi de bu. Dönen cevabın öncesinde ve sonrasında bir çıktı olmaması lazım. En iyisi farklı bir sayfaya istek gönderin. Bir ajax.php oluşturun, ajax isteklerini o sayfada yapın.
Javascript kodlarını da body kapanış taginden hemen önce jquery dosyasını sayfaya çağırmanızdan SONRA yazarsanız çalışması gerekir
Fonksiyon yazacaksınız.
function _x($link, $img): string
{
return '<a href="'.$link.'" >'.$img.'</a>';
}
echo _x('degisken.png', '<img src="gorsel.png">');
Hocam ajax ın bu şartlarda çalışması lazım. Bir de alttaki kodları sayfanın en üstüne koymanız gerek sanırım.
<?php
if (isset($_POST['yillar'])) {
$query = $db->VeriAl("Select dbaslik,dlink,dyil from yazilar", "where durum=? AND dyil=?", [1, $_POST['yillar']], "");
$str = '';
foreach ($query as $item) {
$str .= ' <li><a href="'.URL.'yazilar/'. $item["dlink"] .'">'. $item["dbaslik"] .'</a></li>';
}
echo $str;
exit();
}
?>
jquery kodlarını doğru yere yazdınız di mi. networkden kontrol edin hata döndürüyor mu ya da istek atıyor mu
Hocam şu şekilde bir deneyin bakalım olmuş mu. Biraz düzenlemeye çalıştım
<div class="col-md-2 col-sm-12">
<!-- dyil tüm yayınlar 1 SUCCESS -->
<div class="card card-primary card-outline shadow-sm">
<div class="card-header">
<?php
if (isset($_POST['yillar'])) {
$query = $db->VeriAl("Select dbaslik,dlink,dyil from yazilar", "where durum=? AND dyil=?", [1, $_POST['yillar']], "");
$str = '';
foreach ($query as $item) {
$str .= ' <li><a href="'.URL.'yazilar/'. $item["dlink"] .'">'. $item["dbaslik"] .'</a></li>';
}
echo $str;
exit();
}
?>
<form action="" method="post">
<div class="input-group">
<select id="mySelect2" class="form-control select2bs4 is-info" name="yilsecim" data-placeholder="Any">
<?php
$yilyazi = $db->VeriGetir('yazilar', "where durum=?", [1], "group by dyil desc"); ?>
<?php foreach ($yilyazi as $item) { ?>
<option value="<?= $item["dyil"]; ?>"><?= $item["dyil"]; ?></option>
<?php } ?>
</select>
</div>
</form>
</div>
<!-- /.card-header -->
<div class="card-body">
<h4> <span class="year"><?= $veri[0]["dyil"] ?></span> yılı yayınlarımız:</h4>
<hr>
<ul class="years_list">
<?php
$query = $db->VeriAl("Select dbaslik,dlink,dyil from yazilar", "where durum=? AND dyil=?", [1, $veri[0]["dyil"]], "");
foreach ($query as $item) { ?>
<li><a href="<?= URL ?>yazilar/<?= $item["dlink"]; ?>"><?= $item["dbaslik"] ?></a></li>
<?php } ?>
</ul>
<!-- /.card-body -->
</div>
<!--/.dyil tüm yayinlar son -->
</div>
<!--rightside end-->
</div>
ajax
$(function () {
$("#mySelect2").on("change", function () {
$.ajax(location.href, {
method: 'POST',
data: {
yillar: $(this).val()
}
}).done(e => {
$(".years_list").html(e)
$(".year").text($(this).val)
})
})
})
Login sayfasında HTTP_REFERER i bulun. Eğer sitedeki bir linkten gelmişse girişte o linke yönlensin, referer yok ise direkt ana sayfaya gitsin.
@qplot Valla hocam ben artık karar verdim bu arkadaşın gönderilerine yazmamaya :) ne zaman yazsam sorun asla çözüme ulaşmıyor
Aslında şu an fark ettim de ben o operatöre kafayı o an taktığım için biraz gereksiz uzatmışım :) Aksiyona gerek yokmuş azıcık düşününce fark ettim. Direkt olarak şöyle de olabilir. Siz de daha sonra bu gönderiyi okuyanlar da kusura bakmayın :)
if (isset($_POST['formbir'])) {
$arr = array_values($_POST);
array_pop($arr);
$onaylananurunlerigoster = $db->prepare("INSERT INTO sepetonaylanan
(sepetonaylanan_adisoyadi, sepetonaylanan_firmaadi, sepetonaylanan_sehiradi,
sepetonaylanan_ilcesemt, sepetonaylanan_telefon, sepetonaylanan_eposta,
sepetonaylanan_siparisnotlari, sepetonaylanan_urun_stokkodu,
sepetonaylanan_urun_stoksayisi) VALUES (?,?,?,?,?,?,?,?,?)");
$execute = $onaylananurunlerigoster->execute($arr);
echo $execute ? 'New record created successfully' : 'Failed';
}
Lokalde bu özelliği kullanmak istiyorsanız 7.4 ü yüklemeniz gerekir, sunucuda ise zaten versiyon seçme opsiyonu vardır diye düşünüyorum