dostum ilk cevap doğru yanıttı, üstelik opsiyonel kullanıma uygun bir yanıt verdim. daha sonra rica ettin, istediğini yaptım. ne istediğini bilmeyecek kadar fikir sahibi değilsen, kırıcı olmak istemem ama suyunu çıkartma. şuan çalışan hali senin tanımını yaptığın hali. üstelik tüm methodları kısa da olsa tek tek izah ettim. durup üzerine düşünürsen, javascripti hiç bilmiyorsan bile istediğini yapabilirsin çünkü çok bir şey gerekmiyor ve gerekenleri gösterip nasıl çalıştıklarını yazdım. balığı, oltasıyla, iğnesiyle ve yemiyle verdim. kusra bakma uzattığım için, bu konuda biraz hassiyetim var. küçük kazançlı freelance işler yapardım, bu tavırlardan dolayı bıraktım. en son bir bot yazdım, ödemeyi 1 hafta geç yaptılar, teslim ettiğimde program versiyon yükseltmişti, sonra oturup bir daha yaptım yapmam gerekmiyordu ama. ertesi gün ekstra bir şey istediler kıramadım yaptım. sonraki gün yine yeni bir istek. kardeş dedim sen al paranı, kodlarda sende kalsın. senin yaptığın da aynısı yani şuan.
$('.konuDetay').click(function(){
$('.konu').each(function(){
$(this).find('.detayicerik').hide();
});
$(this).next('.detayicerik').show();
});
diğerinden farklı olarak burada bir elemente ait sınıfı döngüye aldık ve içerisinde detayicerik adındaki sınıfları bulup gizledik. daha sonra sadece tıklananı gösterdik.
$('.konuDetay').click(function(){
$(this).next('.detayicerik').toggle();
})
jquery gerektirir. this tıklanan elemanı alıyor ve aynı derinlikte bulunan ilk detay icerik sınıfını next ile seçiyor toggle ise, display durumu true ise false, false ise true yapıp bir nevi açıyor ve kapıyor.
edit: açıp kapatmak değil, sadece göstermek istiyorsan toggle yerine show yaz.
basit ve kaliteli bir eklenti https://owlcarousel2.github.io/OwlCarousel2/demos/demos.html bununla istediğini yapabilirsin. bilmiyorsan bile demoyu kopyalaman yeterli, örneğinin aynısının demosu mevcut.
edit: 2 kere aynı mesaji gönderdiği için site, bu mesajı düzenledim.
en basit haliyle sql sorgunda where kısmına o konunun eşit olmayanlarına erişmek istediğini söyleyebilirsin. dizi ise o konunun değerine sahip anahtarı çıkartabilirsin. kısaca nasıl listeliyorsan != demen yeterli.
tam sınıf yazacaktım, ama dosyada önceden tanımlanmış ve nereden geldiği belli olmayan bazı değişkenler vardı bende kaba taslak aklımdakini örnekledim. print_r ile bi çıktı alsaydın muhtemelen tam çalışır birde örnek verebilirdim, birde $Json gibi dosyada belirtilmemiş değişkenlerin nereden geldiği net olsaydı.
class getir {
public function MainArr($val){
$productList = array();
$productIdList = array();
/*
burada üç tane iç içe döngü var normalde print_r ile çıktı versen ona göre döngü oluşturabilirdim, döngüyü sen oluşturursun artık
*/
foreach($val as $v){
$productList[] = $val;
$productIdList[] = [
"id" => $val["id"],
"status" => $val["status"],
"price" => $val["price"]
];
}
return array ('list' => $productList, "id" => $productIdList);
}
public function Check($val){
/* buraya son döngüde gerçekleşen koşullar için bir desen oluştur
bu tek koşulu gerektiği kadar çoğalt
*/
return $val["status"] == "true" ? 100 : 200;
}
public function RetrunStat(){
foreach($this->MainArr($value)["id"] as $val){
$val = $this->Check($degisken);
}
}
}
array_push($productList, $val);
yukarıdaki kullanımı aşağıdakiyle değiştirmeni tavsiye ederim.
$productList[] = $val;
$productList zaten boş bir array, push kullanarak ekstradan method döndürüyorsun hemde dizi boyunca, gerek yok. bu kullanım aynı sonucu daha az performans harcayarak verir. en azından ben öyle düşünüyorum. ayrıca tekrar dönüp kodlara bakınca, ikinci döngüde ilk aldığın döngüden yeni bir döngü türetip değer atadığını gördüm. verimsiz bir kullanım. bunu iyice düşünüp ilk döngüde hallet. ikinci döngüyü sil ve yukarıdaki verdiğim örnek ile ilk döngüde atama yap, indis sayıları zaten eşit. muhtemelen ikinci döngüyü ortadan kaldırıp aynı sonucu ilk döngüde hallettiğinde, diğerleri içinde iyileştirmeler yapabilecek yeni bir bakış açısı edinebilirsin..
$productList[] = $val;
$productIdList[] = [
"id" => $val["id"],
"status" => $val["status"],
"price" => $val["price"]
];
nereden ne değer geliyor benim için belli değil ama, ikinci döngüyü ilk döngüden türettiğin için bunun çalışması gerektiğini sanıyorum.
bu ilk iki döngüden sonraki döngüler içerisinde ise çok fazla koşul ve iç içe döngü mevcut. eğer mümkünse koşula uymayan dizileri döngüye sokmadan önce çıkart ve koşul yazmaktan kurtul.
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>";
}
}
}